我有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中比较这种日期吗?
答案 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)