DB2中时间戳到毫秒的转换
我有一列数据类型timestamp。现在我需要将其转换为MiiliSeconds并放入另一列。我该怎么做呢。DB2中时间戳到毫秒的转换,db2,timestamp,Db2,Timestamp,我有一列数据类型timestamp。现在我需要将其转换为MiiliSeconds并放入另一列。我该怎么做呢。 输入格式为2011-10-04 13:54:50.455227,输出格式为1317900719有一个名为timestampdiff的函数。对1970年1月1日使用该函数将起到其他作用,但该函数给出了近似结果。如果你想要精确,你需要用以下公式计算正确答案 create function ts2millis(t timestamp) returns bigint return ( (
输入格式为
2011-10-04 13:54:50.455227
,输出格式为1317900719
有一个名为timestampdiff的函数。对1970年1月1日使用该函数将起到其他作用,但该函数给出了近似结果。如果你想要精确,你需要用以下公式计算正确答案
create function ts2millis(t timestamp)
returns bigint
return (
(
(bigint(year(t-1970))*bigint(31556926000))+
(bigint(month(t))*bigint(2629743000))+
(bigint(day(t))*bigint(86400000))+
(bigint(hour(t))*bigint(3600000))+
(bigint(minute(t))*bigint(60000))+
(bigint(second(t))*bigint(1000))+
(bigint(microsecond(t))/bigint(1000))
)
)
@
您请求的输出不是毫秒,而是相当于CLib localtime(),下面介绍如何执行此操作:
SELECT
86400*
(
DAYS(TIMESTAMP(v_timestamp))
-
DAYS(TIMESTAMP('1970-01-01-00:00:00'))
)
+
MIDNIGHT_SECONDS(timestamp(v_timestamp))
FROM
SYSIBM.SYSDUMMY1;
其中
v_timestamp
是要计算的变量或列。Hi,当您说要将其转换为毫秒时;离什么值还有几毫秒?它是与另一个时间戳列或常量时间戳值进行比较,还是仅从同一时间戳列中获取毫秒部分?用格式编辑了问题。我不明白您是如何获得所需输出的。我希望如果你想要ms,你至少会以50455结束。不同的月份有不同的天数(也就是毫秒),所以你不能使用固定的值。特别是因为二月的值因年份而异。