MS Sql在日期

时间:2016-08-25 10:22:27

标签: sql sql-server

在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

2 个答案:

答案 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