我需要查找特定时间范围内的行.

select * 
from TableA 
where startdate >= '12-01-2012 21:24:00' 
  and startdate <= '12-01-2012 21:25:33'

例如:我需要查找时间戳精度为秒的行.我如何做到这一点?

仅供参考:startdate柱为TIMESTAMP型.

推荐答案

to_timestamp()

您需要使用to_timestamp()将字符串转换为正确的timestamp值:

to_timestamp('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')

至今

如果列的类型为DATE(也支持秒),则需要使用至今

to_date('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')

实例

要使其达到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')

笔记

对于类型为timestamp的列,永远不需要使用to_timestamp().

Sql相关问答推荐

优化SQL查询流

如何查询一个名称是根据PL/pgSQL函数结果构建的表?

SQL查询以条件空值跟踪生产操作结果进展

Android房间fts4匹配语法AND OR

替换上一个或下一个值中的空值并添加其价格日期

如何设计一个调用嵌套函数并仅在所有被调用的嵌套函数都提交时才提交的事务,例如,如果一个子函数失败则中止?

明细表中没有记录如何更新主表的值为0

在UNION查询中查找MIN

更正用于判断错误组合的SQL

SQL:如果一个表中的日期在另一个表的日期的12个月内,则为是或否

向表中添加新列取决于表的日期列(unpivot)

在同一列上迭代时计算持续时间

将具有嵌套 XML 的列转换为 SQL 中的表格格式?

SQL根据另一列的顺序和值获取组中的最后一列

我可以在 T-SQL (SQL Server) 的函数内使用 OPTION 子句吗?

INSERT INTO 语法

MariaDB非常简单的MATCHAGAINST查询不使用FULLTEXT索引吗?

如何根据另一列对行值进行分组?

SQL 查询以填充单个列中的所有值

snowfalke 会在 Select 运行时锁定表吗?