我正在使用Spring JPA。并且需要从begin_time
BIGINT
字段中提取小时。值看起来像这样
1547654400000
1547568000000
1547654400000
这是我尝试过的
@Query("select extract(hour from (s.beginTime/1000)) from TestTable s")
public List<Integer> testQuery() {
// implementation
}
但是它总是返回null。
Java有一个方法System.currentTimeMillis()。因此,在Spring JPA中必须有一种从UNIX时间戳中提取小时的方法。
如何从Unix时间戳中提取小时
答案 0 :(得分:2)
如果beginTime是Unix时间戳,请尝试extract(hour from FROM_UNIXTIME(s.last_login) )
,
希望我能帮助您。
答案 1 :(得分:2)
HOUR(FROM_UNIXTIME(1547654400000/1000))
-> 8
MID()
或其他字符串操作来完成。)警告:这将获取与时区相关的“小时”,将其计入该值。
也许这就是您想要的:
另一方面, FLOOR(1547654400000/(1000*3600))%24
为您提供16
,即值中的“小时”。
这样想:除以“小时”以下的部分(每小时的毫秒和秒),然后对每天的小时数取模(24)。