在数据库中,列名punch_in_utc_time
包含完整时间戳,例如2018-02-28 09:32:00。
在SQL查询中,我想将其与较短版本的时间戳进行比较,例如 2018年2月28日
现在punch_in_utc_time
!=' 2018-02-28'
是否可以这样做,在SQL查询中,punch_in_utc_time ==' 2018-02-28'
我的数据库
答案 0 :(得分:1)
应该能够使用Date函数,TRUNC时间戳到日期,然后与日期字段进行比较。
SELECT DATE("2018-02-28 09:32:00") = "2018-02-28";
由于日期部分相等,上面的dml将返回1。
答案 1 :(得分:1)
这样做:
SELECT * FROM yourTable
WHERE DATE(punch_in_utc_time)=current_date;
进行测试:
SELECT DATE("2018-02-28 09:32:00")=current_date;
答案 2 :(得分:0)
我不确定这是否是你想要的:
如果您使用的是早期版本的SQL Server,请使用
CONVERT
(否则你可能不得不使用DATEPART
函数),这样做:
SELECT CONVERT(punch_in_utc_time)
,它只会为您提供日期值。
所以在比较中:
SELECT 'TRUE' WHERE Convert(Date, @utc_datetime_x) = '2018-02-28'
以上将给你真实的结果。
注意:SQL中没有==,IF语句可以和single一起使用,而BEGIN / END就像():
IF Convert(Date, @utc_datetime_x) = '2018-02-28'
BEGIN
Select 'True'
END
ELSE
BEGIN
Select 'False'
END