我将日期存储为updatedOn(值如'2012-11-12 12:38:43')
我的疑问是:
select * from mytable
where updatedOn >= '11/12/2012' AND updatedOn <= '11/12/2012'
我的目标是在from
&amp; to
日期
答案 0 :(得分:3)
如果您避免使用<=
并使用<
,那么无论您的数据是否具有时间组件,您最终都会被迫使用有效的逻辑。
SELECT
*
FROM
myTable
WHERE
updatedOn >= '2012-12-11'
AND updatedOn < '2012-12-11' + INTERVAL '1' DAY
答案 1 :(得分:1)
您需要使用updatedOn
列的DATE()
组件,并在the formats supported by MySQL之一格式化日期文字:
SELECT *
FROM mytable
WHERE DATE(updatedOn) BETWEEN '2012-12-11'
AND '2012-12-11'
或者,使用MySQL的STR_TO_DATE()
函数将字符串转换为MySQL日期:
SELECT *
FROM mytable
WHERE DATE(updatedOn) BETWEEN STR_TO_DATE('11/12/2012', '%d/%m/%Y')
AND STR_TO_DATE('11/12/2012', '%d/%m/%Y')
答案 2 :(得分:1)
你需要尝试
select * from mytable
where updatedOn >= '11/12/2012' AND updatedOn <= '11/12/2012 23:59:59.999'
当您写'11/12/2012'
时,它意味着'11/12/2012 00:00:00'
,因此您还需要将时间添加到字符串
编辑:正如@Dems指出的那样,我还需要花费毫秒来考虑
答案 3 :(得分:0)
您应该使用DATE功能 -
SELECT
*
FROM
mytable
WHERE
DATE(updatedOn) = '2012-12-11'