例如,如果我在数据库中有一个值为2010-10-20-12.00.00.000000
如何获取包含20101020
的数字。
所以我可以这样做:
SELECT * FROM file WHERE DATE(timestamp) BETWEEN 20101020 AND 20101031
但这似乎不起作用。 DATE()
不会以ISO格式返回它。
答案 0 :(得分:4)
我一直认为ISO格式的日期是yyyy-mm-dd
。这是我们从DB2获得的表达式:
char (date_column,iso)
但我不认为你的情况需要它,你应该可以用:
SELECT * FROM file where date(timestamp) between 20101020 and 20101031
成:
select *
from file
where timestamp >= '2010-10-20-00:00:00.000000'
and timestamp <= '2010-10-31-00:00:00.000000'
由于您没有对数据库中的每一行进行计算(如果DBMS不够智能,无法对您的查询进行变形,性能杀手),这可能会更快地运行。
换句话说,唯一的计算是在查询运行之前,这些文本字段将转换为时间戳。