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

Ras*_*lem 1 sql sql-server

我有一个带有日期时间记录的表.我需要使用日期或时间选择记录.

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

我的问题是:如果我输入日期,时间或两者,我应该获得具有相同日期或相同时间的行.我怎样才能做到这一点

convert函数CONVERT(VARCHAR(10), Travel.Travel_DateTime, 110) 返回日期,如果它们的时间类似于默认值00:00:00

Cor*_*bin 5

(注意我假设MySQL)

只需使用DATETIME功能:

SELECT blah FROM tbl WHERE DATE(some_datetime_field) = '2012-04-02';
Run Code Online (Sandbox Code Playgroud)

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

同样的想法适用于TIME:

SELECT blah FROM tbl WHERE TIME(some_datetime_field) = '14:30:00';
Run Code Online (Sandbox Code Playgroud)

因此,要获得日期为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';
Run Code Online (Sandbox Code Playgroud)

- -编辑 - -

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

CONVERT(DATE, some_datetime_field) = '2012-04-02'
Run Code Online (Sandbox Code Playgroud)

(从如何仅从SQL Server datetime数据类型返回日期部分)