如何将日期和时间与日期时间分开?

时间:2012-04-03 20:25:09

标签: sql sql-server

我有一张带有日期时间记录的表格。 我需要使用日期或时间选择记录。

假设我在数据库中有这种格式1/1/2001 13:33:00

我的问题是:如果我输入日期,时间或两者,我应该获得具有相同日期或相同时间的行。 我该如何实现

转换函数CONVERT(VARCHAR(10), Travel.Travel_DateTime, 110) 如果日期与默认00:00:00

相同,则返回日期

2 个答案:

答案 0 :(得分:5)

(请注意,我假设是MySQL)

只需使用DATETIME函数:

SELECT blah FROM tbl WHERE DATE(some_datetime_field) = '2012-04-02';

这将选择任何行,使some_datetime_field的日期部分为2012年4月4日。

同样的想法适用于TIME:

SELECT blah FROM tbl WHERE TIME(some_datetime_field) = '14:30:00';

因此,要获得日期为2012年4月5日或时间为下午2:30的所有行,您只需将两者结合起来:

    SELECT blah FROM tbl WHERE DATE(some_datetime_field) = '2012-04-02' OR TIME(some_datetime_field) = '14:30:00';

<强> --- ---编辑

对于SQL Server,您应该能够使用:

CONVERT(DATE, some_datetime_field) = '2012-04-02'

(来自How to return the date part only from a SQL Server datetime datatype

答案 1 :(得分:1)

说您在l_DATEl_TIME变量中传递日期和时间..

然后您可以使用以下查询..

select * from your_table 
where to_char(date_field,'DD/MM/YYYY') = l_DATE 
   or to_char(date_field ,'HH:MI:SS') = l_TIME

如果你使用Oracle数据库作为DBMS,那么你可以使用上面的查询,它应该给你你想要的答案/结果......