我正在使用DB2数据库,其中的time字段是以下字符串:
12104102000000
从左边开始,它意味着:
> 1 --> is the century 21 --> is the year 04 --> is the month 10 --> are
> the hours 20 --> are the minutes 00 --> are the seconds 000 --> are
> the milliseconds
好吧,问题是这个字段是与参考时间同步的,所以关于意大利(我工作的地方)是两个小时前。
我有一个查询,通常我用substr函数提取日期字段,开始部分是:
select substr("Message_Time",4,2) || '/' || substr("Message_Time",6,2) || '/' || '20' || substr("Message_Time",2,2) as "Date",
substr("Message_Time",8,2) || ':' || substr("Message_Time",10,2) as "Hour"
我需要添加到小时substr只,2小时,使日期到意大利。但我认为问题是在一天的变化,因为如果我有,例如。4月20日22:40,对应于4月21日00:40在意大利。
我该怎么做才能使它工作?
3条答案
按热度按时间mlnl4t2r1#
请标记您使用的DB2。
如果是DB2LUW或DB2 for I,则可以使用
to_date('12104102000000', 'YYYMMDDHH24MISSFF1') - 100 YEARS + CURRENT TIMEZONE
我猜它适用于DB2 for Z,但我不确定。
qlvxas9a2#
如果你想让你的结果是相同的字符串形式,试试这个:
cbjzeqam3#
将
your_date_column
替换为包含日期的列,将your_table
替换为表名。您可以根据需要调整数量以添加不同的小时数。例如,要向日期列添加两个小时,可以使用:用途: