在 Azure Synapse 中将 TIMESTAMP 转换为 BIGINT 的最佳方法是什么。我试过这个(有效),但看起来很笨拙。有没有更好、更简洁、更有效的方法来做同样的事情?
SELECT CURRENT_TIMESTAMP AS CURR_TS,
CONVERT(BIGINT,
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 112) +
REPLACE(CONVERT(CHAR(12), CURRENT_TIMESTAMP, 114), ':', '')) AS CURR_TS_NUM
稍微紧凑一点,只需一次调用
CURRENT_TIMESTAMP
,就可以用CONVERT
它的格式开关(121)和TRANSLATE
和REPLACE
来整理。这将语句从六个单独的函数调用减少到四个。您也可以使用FORMAT
,它只有两个函数调用:但是,我会询问是否需要存储这些值。您可能应该为事件记录存储传统的时间戳,那么为什么还要以编码方式存储这种形式的时间戳,如果您想使用它必须解压缩呢?记录到具有标识列的表具有类似的效果。需要考虑的事情。