我的表单中有一个日期选择器,在提交表单时生成一个开始日期和结束日期。两者的日期格式均为'#date_format' => 'Y-m-d',
。从我的oracle DB,我需要将这两个输入与列值TIMESTAMP与日期格式date('Y-m-d')
进行比较。我的SQL查询是
SELECT TITLE
FROM TABLE
WHERE TIMESTAMP BETWEEN '2015-07-15' AND '2015-07-30'
GROUP BY TITLE ORDER BY TITLE ASC
我可以这样搜索吗?我没有通过此查询获得任何结果。
答案 0 :(得分:2)
在2015-07-15' 2015-07-15'之间的时间戳AND' 2015-07-30'
您正在将 DATE 与字符串进行比较。您必须使用 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'
答案 1 :(得分:0)
试试MSSQL Query
SELECT TITLE FROM TABLE WHERE convert(varchar(50),TIMESTAMP ,111)
BETWEEN '2015-07-15' AND '2015-07-30' GROUP BY TITLE ORDER BY TITLE ASC