php - 将字段转换为时间戳以进行比较

标签 php mysql database postgresql plpgsql

我有一个 Postres 数据库,想要比较两个时间戳字段。

基本查询:

select t1.valu1, t1.valu2 from table1 as t1 where t1.valu1 == t1.valu2

与时间戳比较:

select t1.valu1, t1.valu2 from table1 as t1
where EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE  t1.valu1 )
  ==  EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE  t1.valu2 ) 

value1 的示例值:
'14:50:15', '10:50:15'

value2:
'11:10:15', '17:50:15'

我想将 valu1valu2 转换为时间戳,然后进行比较。

// syntax of extract
EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '20:38:18');

我收到以下格式的错误:

EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE  t1.valu2 ) 

最佳答案

您的示例值是 time 的文本表示形式不是时间戳:

'14:50:15', '10:50:15', '11:10:15', '17:50:15'

根据后面的评论,假设 text 作为源类型。

将它们转换为时间以消除比较中无关紧要的空白或前导 0 是有意义的。但对于简单的转换,它必须是有效的时间格式:

SELECT valu1, valu2
FROM   table1
WHERE  valu1::time = valu2::time

如果您确实想比较“作为时间戳”,则需要使用 to_timestamp()具有匹配的格式模式:

SELECT valu1, valu2
FROM   table1
WHERE  to_timestamp(valu1, 'HH24:MI:SS')
     = to_timestamp(valu2, 'HH24:MI:SS');

但这几乎没有任何意义......

关于php - 将字段转换为时间戳以进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179664/

相关文章:

php - log4php : Cannot create log file

php - 在 php 服务器端使用 meteor.js

javascript - 如何以单一形式发布输入和选择类型

java - 如何避免插入重复值?

php - 在 PHP 中编写一个 UTF8 编码的文件

mysql 正则表达式与多个替换?

php - 两个字段中两个日期之间的日期

mysql - 在mysql中使用Ifexists作为select语句

database - Facebook 更快还是本地数据库?

sql-server - 在 VS2015 SQL Server 数据库项目中通过 UI 创建外键关系