在SQl中的日期之间搜索

时间:2015-07-30 10:41:06

标签: sql oracle date-comparison

我的表单中有一个日期选择器,在提交表单时生成一个开始日期和结束日期。两者的日期格式均为'#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

我可以这样搜索吗?我没有通过此查询获得任何结果。

2 个答案:

答案 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