我有一张带有日期时间记录的表格。 我需要使用日期或时间选择记录。
假设我在数据库中有这种格式1/1/2001 13:33:00
我的问题是:如果我输入日期,时间或两者,我应该获得具有相同日期或相同时间的行。 我该如何实现?
转换函数CONVERT(VARCHAR(10), Travel.Travel_DateTime, 110)
如果日期与默认00:00:00
答案 0 :(得分:5)
(请注意,我假设是MySQL)
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_DATE
和l_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,那么你可以使用上面的查询,它应该给你你想要的答案/结果......