DB2日期时间字段操作

本文遵循BY-SA版权协议,转载请附上原文出处链接。


本文作者: 黑伴白

本文链接: http://heibanbai.com.cn/posts/3b22cccf/

DB2日期时间字段操作

当出现跨月且跨度超过一个月时,timestampdiff函数视每个月为30天计算,就会出现相应的误差,但days函数则更为精确的计算出天数差,不受大小月、跨月和平年闰年的影响;如果颗粒度仅到天数时,则建议使用days函数

date

语法:DATE(ARG)

DATE函数返回一个日期、时间戳、日期字符串、时间戳字符串中的日期

1
2
3
4
select date('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
2022-01-09

time

语法:TIME(ARG)

TIME函数返回一个时间、时间戳或一个时间、时间戳字符串参数的时间

1
2
3
4
select time('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
12:22:43

timestamp

语法:TIMESTAMP(EXPRES1[,EXPRES2])

TIMESTAMP函数返回一个或两个参数中的时间戳

如果只有一个参数,这个参数必须是一个时间戳或一个时间戳字符串;

如果有两个参数,第一个参数必须是一个日期或日期字符串,第二个参数必须是一个时间或时间戳字符串。

1
2
3
4
select timestamp('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
2022-01-09-12.22.43.000000

year

语法:YEAR(ARG)

YEAR函数返回一个日期、时间戳、日期字符串、时间戳字符串的年部分

1
2
3
4
select year('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
2022

month

语法:MONTH(ARG)

MONTH函数返回一个日期、时间戳、日期字符串、时间戳字符串的月部分

1
2
3
4
select month('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
1

quarter

语法:QUARTER(ARG)

QUARTER函数返回一个日期、时间戳、日期字符串、时间戳字符串的季度部分

1
2
3
4
select quarter('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
1

week

语法:WEEK(ARG)

WEEK函数返回一个日期、时间戳、日期字符串、时间戳字符串的星期部分

1
2
3
4
select week('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
3

day

语法:DAY(ARG)

DAY函数返回一个日期、时间戳、日期字符串、时间戳字符串的日部分

1
2
3
4
select day('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
9

hour

语法:HOUR(ARG)

HOUR函数返回一个日期、时间戳、日期字符串、时间戳字符串的小时部分

1
2
3
4
select hour('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
12

minute

语法:MINUTE(ARG)

MINUTE函数返回一个日期、时间戳、日期字符串、时间戳字符串的分钟部分

1
2
3
4
select minute('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
22

second

语法:SECOND(ARG)

SECOND函数返回一个日期、时间戳、日期字符串、时间戳字符串的秒部分

1
2
3
4
select second('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
43

days

语法:DAYS(ARG)

DAYS函数返回一个日期、时间戳、日期字符串、时间戳字符串的日期整数表示法,从0001-01-01以来的天数

1
2
3
4
select days('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
738164

dayofyear

语法:DAYOFYEAR(ARG)

DAYOFYEAR函数返回一个日期、时间戳、日期字符串、时间戳字符串在年内的天值

1
2
3
4
select dayofyear('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
9

dayofweek

语法:DAYOFWEEK(ARG)

DAYOFWEEK函数返回一个日期、时间戳、日期字符串、时间戳字符串在周内的天值(从周日开始 1 到 7 )

1
2
3
4
select dayofweek('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
1

dayofweek_iso

语法:DAYOFWEEK_ISO(ARG)

DAYOFWEEK_ISO函数返回一个日期、时间戳、日期字符串、时间戳字符串在周内的天值(从周一开始 1 到 7 )

1
2
3
4
select dayofweek_iso('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
7

dayname

语法:DAYNAME(ARG)

DAYNAME函数返回一个日期、时间戳、日期字符串、时间戳字符串是星期几

1
2
3
4
select dayname('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
Sunday

monthname

语法:MONTHNAME(ARG)

MONTHNAME函数返回一个日期、时间戳、日期字符串、时间戳字符串的月份名

1
2
3
4
select monthname('2022-01-09 12:22:43') from sysibm.sysdummyq;

-- 输出结果
January

timestampdiff

1
2
3
4
5
6
7
SELECT 
(days('2016-02-01') - days('2016-01-28')) AS diffDays,
timestampdiff(16,CHAR(TIMESTAMP('2016-02-01')-TIMESTAMP('2016-01-28'))) AS diffTimes16
FROM sysibm.sysdummy1;

-- 输出结果
4 4

timestampdiff函数使用:

timestampdiff (, char( timestamp(‘2002-11-30 00:00:00’)- timestamp(‘2002-11-08 00:00:00’)))

对于 ,可以使用以下各值来替代,以指出结果的时间单位:

1 = 秒的小数部分

2 = 秒

4 = 分

8 = 时

16 = 天

32 = 周

64 = 月

128 = 季度

256 = 年


蚂蚁再小也是肉🥩!


DB2日期时间字段操作
http://heibanbai.com.cn/posts/3b22cccf/
作者
黑伴白
发布于
2022年5月30日
许可协议

“您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付