我需要在特定时间范围内查找行。
select * from TableA where startdate >= '12-01-2012 21:24:00' and startdate <= '12-01-2012 21:25:33'
即:我需要以SECONDS的时间戳精度查找行。我该如何实现?
仅供参考:startdate列的类型为TIMESTAMP。
startdate
TIMESTAMP
您需要使用to_timestamp()将字符串转换为适当的timestamp值:
to_timestamp()
timestamp
to_timestamp('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')
如果您的列是类型DATE(也支持秒),则需要使用to_date()
DATE
to_date()
to_date('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')
要使它成为一个where条件,请使用以下命令:
where
select * from TableA where startdate >= to_timestamp('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss') and startdate <= to_timestamp('12-01-2012 21:25:33', 'dd-mm-yyyy hh24:mi:ss')
您永远不需要to_timestamp()在类型为的列上使用timestamp。