我想编写一个查询,将给定日期与今天日期与时间戳进行比较。 给定日期可以是今天的日期,如果日期相同则会比较时间。
select * from abcTable where submitDate <= now();
这里只比较日期而不是时间。
submitDate
是db表中的anydate。
答案 0 :(得分:1)
首先,您已指定列submitDate的数据类型为Date,根据您的问题,其数据类型应为Timestamp。当submitDate列的数据类型为Date时,没有理由比较时间。
但是,如果您仍然需要将submitDate与当前时间戳进行比较,则可以这样做: 从提交日期中选择*,其中date_format(submitDate,'%d /%m /%y%T')&lt; = now();
编辑:以上查询适用于Mysql
答案 1 :(得分:0)
我认为你应该尝试:
GETDATE() --2017-01-17 08:19:28.403
您可以通过以下方式分别获得日,月和年:
select DAY(getdate()) --17
select month(getdate()) --1
select year(getdate()) --2017
如果你在sql server 2008上,那么DATE日期时间只有日期部分,而不是时间:
select cast (GETDATE() as DATE) --2017-01-17
或者你可以尝试:
select * from abcTable where submitDate <= CAST(CURRENT_TIMESTAMP AS DATE);
OR
select * from abcTable where submitDate <= cast((now()) as date);