如何在SQL Server中比较日期

时间:2017-08-31 02:38:14

标签: sql-server

我有2个日期字符串,想要在SQL Server中比较它们:

if (convert(timestamp, '6/26/2017 2:07:15.197737 PM') = 
      convert(timestamp, '6/26/2017 2:07:15.187737 AM'))
    print 'y'
else 
    print 'n'    

显然,一个日期是PM,一个日期是AM,所以它们是不同的,但是' y'打印出来,有人能告诉我如何在SQL Server中比较这种日期吗?

2 个答案:

答案 0 :(得分:2)

如果您只想进行比较,那么CHECKSUM函数是一个不错的选择。

IF CHECKSUM('6/26/2017 2:07:15.197737 PM') = CHECKSUM('6/26/2017 2:07:15.187737 AM')
print 'y'
else 
print 'n'

或者,给出你显示的日期/时间值(比DATETIME可以准确比较的分辨率更高),你可以CAST或CONVERT到DATETIME2(7)

if( convert(DATETIME2(7),'6/26/2017 2:07:15.197737 PM') = convert(DATETIME2(7),'6/26/2017 2:07:15.187737 AM'))
print 'y'
else 
print 'n'

答案 1 :(得分:0)

如果你想要精确的比较,包括时间

datetime_column1 = datetime_column2

如果仅按日期比较,则将其转换为日期并进行比较

convert(date, datetime_column1) = convert(date, datetime_column2)