如何设置SQL查询,其中包含完整时间戳的列将等于时间戳的一部分

时间:2018-02-28 04:23:55

标签: mysql sql

在数据库中,列名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'

我的数据库

enter image description here

PHPMYADMIN SQL结果enter image description here

3 个答案:

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

请参阅DEMO on SQL Fiddle

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