我的表单中有一个日期选择器,可以在提交表单时生成一个开始日期和结束日期。两者的日期格式均为 '#date_format' => 'Y-m-d',
。在我的 Oracle DB 中,我需要将这两个输入与日期格式 date('Y-m-d')
的列值 TIMESTAMP 进行比较。我的 SQL 查询是
SELECT TITLE
FROM TABLE
WHERE TIMESTAMP BETWEEN '2015-07-15' AND '2015-07-30'
GROUP BY TITLE ORDER BY TITLE ASC
我可以这样搜索吗?我没有通过此查询得到任何结果。
最佳答案
WHERE TIMESTAMP BETWEEN '2015-07-15' AND '2015-07-30'
您正在将日期与字符串进行比较。您必须使用TO_DATE将字符串显式转换为日期。
例如,
WHERE TIMESTAMP
BETWEEN
TO_DATE('2015-07-15', 'YYYY-MM-DD')
AND
TO_DATE('2015-07-30', 'YYYY-MM-DD')
当您只有固定文字格式的日期元素时,我更喜欢 ANSI 日期文字
DATE '2015-07-15'
使用 ANSI 日期文字可以用更少的代码编写上述查询:
WHERE TIMESTAMP
BETWEEN
DATE '2015-07-15'
AND
DATE '2015-07-30'
关于sql - 在 SQl 中搜索日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31721547/