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

How do I convert Unix timestamp to date in CockroachDB?

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

我正在寻找的只是能够像下面这样在 MySQL 中完成的查询:

SELECT
  DATE(FROM_UNIXTIME(transaction_timestamp)),
  COUNT(id)
FROM 
  purchases

有什么想法吗?

这取决于transaction_timestamp的数据类型。

如果是 TIMESTAMP, you can convert it to DATE 使用以下之一:

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

如果只是 INT(或 DECIMALFLOAT),您首先需要将其转换为时间戳。

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

不要 直接从 INT/DECIMAL/FLOAT 转换为 DATE,将值解释为 自 Unix 时代以来。

CRDB 文档有更多关于 casting as well as casting rules for each data type (TIMESTAMP and DATE) 的信息。