hsqldb - HSQL 从 TIMESTAMP 获取日期和时间

标签 hsqldb

我有一个 HSQLDB 表,其中包含一些信息以及存储时间戳的位置

我想选择特定时间段的信息,例如 10 月上午 0 点到下午 5 点之间的所有信息。

我没有找到任何像 mysql'ones DATE(myfield) OR TIME(myfield) 这样的函数,它非常适合我想要的。

SELECT * FROM myTable 
WHERE DATE(myField) BETWEEN '2012-10-01' AND '2012-10-30' 
AND TIME(myField) BETWEEN '00:00:00' AND '17:00:00'

我发现的唯一方法是使用函数 YEAR()、DAYOFMONTH()、DAYOFYEAR()、HOUR() 和 MINUTE(),但我想知道是否没有其他更简单的解决方案。

最佳答案

不需要这样的专门函数,因为 HSQLDB 为此目的支持通用 CAST 表达式

CAST(myField AS DATE)
CAST(myField AS TIME)

HSQLDB还支持从DATE自动转换为TIMESTAMP。因此,可以在 myField 列上使用索引的优化查询应如下所示:

SELECT * FROM myTable 
WHERE myField BETWEEN DATE'2012-10-01' AND DATE'2012-10-30' 
AND CAST(myField AS TIME) BETWEEN TIME'00:00:00' AND TIME'17:00:00'

关于hsqldb - HSQL 从 TIMESTAMP 获取日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12816297/

相关文章:

java - 如何使 HSQLDB 成为 Windows 服务?

java - 如何从数据库中选择列表中的特定条目?

java - SQL 客户端中的 HSQLDB 数据库

java - 在 MyBatis 中添加一个项目列表,在 SQL 列中共享一个值

java - 使用 hypersql 组合更新和插入

java - HSQLDB、本地日期时间、JdbcTemplate

spring - HSQL 在 Spring 启动测试中不起作用

java - 为什么 Hibernate 将架构名称添加到 Hsql 函数中?

java - HSQLDB 内存数据库 JDBC 模板查询失败

java - Eclipse中Hibernate空指针异常