我正在尝试编写一个DB2查询,它选择一个日期列,我想将它转换为时间戳。例如,该查询应该采用“mm/dd/yyyy”格式的列,并将其转换为“mm/dd/yyyy hh:mm:ss”格式的列。
例如,如果END_DT
是表中的一个日期列,那么我想选择一个额外的列END_DT
,但它也有一个常量值hh:mm:ss附加到它。即'1/29/2023'应该转换为'1/29/2023 11:22:33'(依此类推,对于查询的每个返回行中的每个其他END_DT值)。
我试过这样的方法:
SELECT
END_DT, TIMESTAMP(END_DT) AS end_dt_with_timestamp
FROM <table>
但是查询的TIMESTAMP(END_DT)
部分似乎不起作用。
3条答案
按热度按时间igetnqfo1#
你没有提到你使用的是什么平台和版本的Db2...
但请查看您的
TIMESTAMP()
函数版本是否支持两个参数with the second argument allowing forexpression-2必须是返回以下内置数据类型之一的值的表达式:时间、字符串或图形字符串。如果expression-2是字符或图形字符串,则其值必须是时间的有效字符串表示。有关日期和时间的字符串表示的有效格式,请参见第75页的“日期时间值的字符串表示”。
因此你所需要的就是
disbfnqx2#
您可以使用
CONVERT
将数据类型更改为DATETIME
,然后使用DATEADD
添加特定的时间戳。2023年1月29日示例的完整代码:
如果没有
DATEADD
部分,DATETIME
数据类型将自动添加时间戳'00:00:00.000'。uwopmtnx3#
您可以添加到新转换的时间戳的任何小时,分钟和秒,你需要的
fiddle