如何在sql

时间:2017-01-17 14:38:39

标签: java mysql sql

我想编写一个查询,将给定日期与今天日期与时间戳进行比较。 给定日期可以是今天的日期,如果日期相同则会比较时间。

select * from abcTable where submitDate <= now();

这里只比较日期而不是时间。

submitDate是db表中的anydate。

2 个答案:

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