Db2

將兩個整數轉換為時間戳

  • April 3, 2020

如何將兩個整數(一個用於日期,一個用於時間)轉換為時間戳?

  • 給定 20200304 和 1046,返回 2020 年 4 月 3 日上午 10:46 的時間戳。
  • 給定 20200304 和 946,返回 2020 年 4 月 3 日上午 9:46 的時間戳。
  • 給定 20200304 和 2359,返回 2020 年 4 月 3 日晚上 11:59 的時間戳。
  • 給定 20200304 和 0,返回 2020 年 4 月 3 日凌晨 0:00 的時間戳。

我正在執行第 7 版,第 1 版。

試試這個:

WITH T (YYYYMMDD, HHMM) AS 
(
VALUES
 (20200304, 1046) -- return a timestamp for April 3, 2020, 10:46 AM.
, (20200304,  946) -- return a timestamp for April 3, 2020, 9:46 AM.
, (20200304, 2359) -- return a timestamp for April 3, 2020, 11:59 PM.
, (20200304,    0) -- return a timestamp for April 3, 2020, 0:00 AM.
)
SELECT 
 YYYYMMDD, HHMM
, TIMESTAMP_FORMAT(DIGITS(DEC(YYYYMMDD, 8)) || DIGITS(DEC(HHMM, 4)), 'YYYYMMDDHH24MI') AS TS 
FROM T;

結果是:

|YYYYMMDD   |HHMM       |TS                 |
|-----------|-----------|-------------------|
|20200304   |1046       |2020-03-04 10:46:00|
|20200304   |946        |2020-03-04 09:46:00|
|20200304   |2359       |2020-03-04 23:59:00|
|20200304   |0          |2020-03-04 00:00:00|

引用自:https://dba.stackexchange.com/questions/264263