1

I have a table with a datetime record. I need to select the record using date or time.

Let's say that I have this format 1/1/2001 13:33:00 in the database

My question is: If I enter the date, the time or both, I should obtain the rows that have either same date or the same time. How can I achieve this?

The convert function CONVERT(VARCHAR(10), Travel.Travel_DateTime, 110) returns the dates if their time is like the default 00:00:00

4

2 回答 2

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 服务器,您应该能够使用:

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

(来自如何仅从 SQL Server 日期时间数据类型返回日期部分

于 2012-04-03T20:28:02.057 回答
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,那么您可以使用上述查询,它应该会给您想要的答案/结果...

于 2012-04-03T20:33:17.810 回答