在MS SQL中,我试图获取当前日期的值,例如:今天是2016年8月25日,所以这个值将是数字25.我还想找到日期的值较早的日期(例如:2016年6月6日,所以这个数字将是06)。然后我想从第一个值中减去第二个值并确定结果是正值还是负值。如果它是肯定的,它应该做一件事,例如打印测试A,如果它是负值,它应该做其他事情,例如打印测试B.
我是MS sql的新手,并且真的没有说明如何在语言中实现这一点。有没有人有任何指针?非常感激。请参阅我的伪代码:
change = value of days in current date - value of days in previous date
if change is a positive value : print "testA"
if change is 0 or a negaitve value: print "testB"
我在excel 2010中这样做。我有三列日期在colA& colB和testA或测试B应打印在colC中,具体取决于值是正还是负。
例如数据:
colA:2016年2月12日,2016年6月6日,2016年12月12日 colB:12/05 / 2016,12 / 02 / 2015,28 / 06/2016
答案 0 :(得分:0)
如果您能够将日期格式更改为MM/DD/YYYY
,那么以下脚本可能会帮助您
DECLARE @D1 DATETIME ='08/25/2016'
DECLARE @D2 DATETIME ='06/06/2016'
IF DATEPART(D,@D1) - DATEPART(D,@D2) > 0
PRINT 'testA'
ELSE
PRINT 'testB'
答案 1 :(得分:0)
使用以下脚本:
SELECT CASE WHEN (DATEPART(dw,GETDATE())+DATEPART(dw,GETDATE()-1)) > 0 THEN 'testA'
WHEN (DATEPART(dw,GETDATE())+DATEPART(dw,GETDATE()-1)) =0 THEN 'testB' END Result
一些额外的信息。
如果您需要特定的DAY / Day值,请使用以下脚本
SELECT DATENAME(dw,'12/22/2016') --Thursday
SELECT DATEPART(dw,'12/22/2016') --5
如果您需要一个月份值,请使用以下脚本
SELECT DATEPART(dd,'12/22/2016') --22