如何将特定于mysql平台的查询转换为非平台特定的?

时间:2016-09-18 19:03:38

标签: php mysql postgresql cross-platform

我有一个特定于MySQL平台的查询:

$post->published(false)...

我使用了一些特定于MySQL平台的命令,例如SELECT month(from_unixtime(s.date)) AS month, count(s.id) AS blah, s.status FROM Something s WHERE s.date between unix_timestamp($blah1) and unix_timestamp($blah2) GROUP BY s.status, month monthfrom_unixtime。 我如何重新编写此查询以使其在Postgres上也能与跨平台兼容?

1 个答案:

答案 0 :(得分:1)

假设您正在存储" unix时代"列date中的值,以下内容应该有效:

SELECT extract(month from to_timestamp(s.date)) AS month, 
       count(s.id) AS blah, 
       s.status 
FROM Something s 
WHERE s.date between to_timestamp($blah1) and to_timestamp($blah2) 
GROUP BY s.status, month
带有double(或整数)参数的

to_timestamp()将unix时期转换为适当的时间戳。

但真正的问题是:为什么你没有使用正确的timestamp数据类型?