如何在 CockroachDB 中将 Unix 时间戳转换为日期?

lcm*_*lcm 1 timestamp unix-timestamp cockroachdb

我到处都在寻找这个,但找不到我需要的东西。我有一个表,其中有一列包含事务日期的 unix 时间戳。在 MySQL 中,我可以非常轻松地进行转换,但在 CockroachDB 中执行此操作时遇到问题。

我所寻找的只是能够在 MySQL 中执行如下查询:

SELECT
  DATE(FROM_UNIXTIME(transaction_timestamp)),
  COUNT(id)
FROM 
  purchases
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Mar*_*arc 5

这取决于 的数据类型transaction_timestamp

如果它是TIMESTAMP,您可以将其转换为DATE使用以下之一:

  • SELECT transaction_timestamp :: DATE
  • SELECT CAST(transaction_timestamp AS DATE)

如果它只是一个INT(orDECIMALFLOAT),您首先需要将其转换为时间戳。

  • SELECT transaction_timestamp :: TIMESTAMP :: DATE
  • SELECT CAST(CAST(transaction_timestamp AS TIMESTAMP) AS DATE)

不要直接从INT/DECIMAL/FLOATto进行转换DATE,这会将值解释为自 Unix 纪元以来的天数。

CRDB 文档提供了有关每种数据类型(和)的转换以及转换规则的更多信息。TIMESTAMPDATE