sql - 在 SQL 中将时间戳转换为当前时间格式
问题描述
我有一个时间戳列,其值采用以下格式:
2021-07-20T18:40:36.368126186Z
我想将结果转换为使时间戳干净(以 24 小时格式):
2021-07-20 18:40:36
我尝试使用 DATE 字段,它只给我日期,而 DATETIME 函数在我的数据库上不起作用。
select timestamp,
DATE(timestamp),
CURRENT_TIMESTAMP(0) AT TIME ZONE 'America/New_York'
from table
-- This doesn't work for now as the DATE method removes the time.
我为输出选择的格式类似于 CURRENT_TIMESTAMP(0) AT TIME ZONE 'America/New York'。我怎样才能得到它。我可以使用正则表达式来删除我不需要的值吗?
解决方案
我能够得到答案:
SELECT timestamp AS original_ts,
to_timestamp(REPLACE(REPLACE(timestamp,'T',' '),'Z',''),'YYYY-MM-DD HH:MI:SS')
AS modified_ts from table
我也尝试使用 TO_TIMESTAMP_TZ 方法进行 CAST,但它没有按预期工作。如果有更好的解决方案,我很高兴知道,但现在我得到了答案。
推荐阅读
- arrays - 以角度 7 将对象转换为数组
- java - 我想在 kotlin 中为我的自定义图像视图添加圆角
- c - 它根本没有通过我的 SOLVE 函数的 main 函数,所以有人可以告诉我为什么......(也试图在 Main 中插入指针)
- c++ - unordered_map 编译正常,但执行时出现段错误
- ruby-on-rails - 如何在没有 root 访问权限的服务器上安装 SQLite3 for Rails
- java - Android Studio Gson 到内部存储
- c++ - dynamic_cast 从非模板类到模板子类
- javascript - 如何使用for循环javascript制作形状
- facebook - 如何区分facebook用户的事件?
- python-3.x - 如何在 DataFrame 中共享 style.apply 结果的位置?