0
J'ai une procédure stockée qui arrondit une colonne avec des dates en (aaaa: mm: jj hh: mm: ss) à la poignée de 10 minutes le plus proche (aaaa: mm: jj hh: mm)T-SQL - arrondi Date et normalisation
20100303 09: 46: 3000 ------> 20100303 09:50
mais je veux chage pour arrondir à la poignée de 15 minutes le plus proche:
20.100.303 09: 46: 3000 ------> 20100303 09:45
voici mon code:
IF OBJECT_ID(N'[dbo].[SPNormalizeAddWhen]') IS NOT NULL
DROP PROCEDURE [dbo].[SPNormalizeAddWhen]
GO
CREATE PROCEDURE [dbo].[SPNormalizeAddWhen]
As
declare @colname nvarchar(20)
set @colname='Normalized Add_When'
if not exists (select * from syscolumns where id=object_id('Risk') and [email protected])
exec('alter table Risk add [' + @colname + '] datetime')
declare @sql nvarchar(500)
set @sql='update Risk set [' + @colname + ']=cast(DATEPART(yyyy,[add when]) as nvarchar(4)) + ''-'' + cast(DATEPART(mm,[add when]) as nvarchar(2)) + ''-'' + cast(DATEPART(dd,[add when]) as nvarchar(2)) + '' '' + cast(DATEPART(Hh,[add when]) as nvarchar(2)) + '':'' + cast(round(DATEPART(Mi,[add when]),-1) as nvarchar(2)) '
print @sql
exec(@sql)
GO
donc essentiellement vous voulez que nous fassions votre travail pour vous? Tout d'abord, vous devez déterminer comment fonctionne votre procédure stockée. Ensuite, vous devez le modifier en conséquence, –
ne comprends pas comment vous « faire » un travail pour moi, je l'ai écrit ce code moi-même et il fonctionne parfaitement bien: il arrondit la minute de l'amende de 10 minutes le plus proche, je tentais ot rond à la 15 minutes et ne pouvait pas trouver quelque chose d'utile la plus proche, donc était à la recherche pour les pointeurs ... –
pour d'autres intéressés en fait de donner des suggestions utiles ici est ce que je cherche: tour de sélection (46, -1) = 50 select round (46,?) = 45 sa ligne je dois changer mais avec quoi: cast (rond (DATEPART (Mi, [ajouter quand]), - 1) ---> remplacer -1 avec quoi ? –