DB2的日期时间类型以及转换问题

一、首先说一下日期时间类型的简介:

日期时间型数据类型包括 DATE、TIME 和 TIMESTAMP。日期时间值可在某些算术和字符串操作中使用,而且兼容某些字符串,但它们既不是字符串,也不是数字。

①DATE:DATE 是一个由三部分组成的值(年、月和日)。年份部分的范围是从 0001 到 9999。月份部分的范围是从 1 到 12。日部分的范围是从 1 到 n,其中 n 的值取决于月份。DATE 列长 10 个字节。

②TIME:TIME 是一个由三部分组成的值(小时、分钟和秒)。小时部分的范围是从 0 到 24。分钟和秒部分的范围都是从 0 到 59。如果小时为 24,分钟和秒的值都是 0。TIME 列长 8 个字节。

③TIMESTAMP:TIMESTAMP 是一个由七部分组成的值(年、月、日、小时、分钟、秒和微秒)。年份部分的范围是从 0001 到 9999。月份部分的范围是从 1 到 12。日部分的范围是从 1 到 n,其中 n 的值取决于月份。小时部分的范围是从 0 到 24。分钟和秒部分的范围都是从 0 到 59。微秒部分的范围是从 000000 到 999999。如果小时是 24,那么分钟值、秒的值和微秒的值都是 0。TIMESTAMP 列长 26 个字节。

下面是对于日期、时间、时间戳三种数据类型的描述:

类型                值的范围
---------          ------------------------------------------------------------------------
DATE                0001-01-01  ~  9999-12-31
TIME                00:00:00   ~   24:00:00
TIMESTAMP           0001-01-01-00.00.00.000000   ~  9999-12-31-24.00.00.000000

二、字符串类型和日期时间类型之间的转换

①日期时间类型转字符串类型用to_char()函数

TO_CHAR()把时间转换成指定格式的字符串类型(DB2较低版本不支持)。'YYYY-MM-DD HH:MI:SS' 十二小时制;'YYYY-MM-DD HH24:MI:SS' 二十四小时制。('YYYY-MM-DD HH:MM:SS'不会报错,但是后面MM值取的是月的值。

以下为实例:

其中,clock是我数据库表t_cutoff_result中的列名,clock数据类型为timestamp类型。to_char()函数转换成的字符串格式还'YYYY-MM-DD'

②字符串类型转日期时间类型用timestamp()函数

实例:

时间戳timestamp()函数可以把相应的字符串时间格式转化为timestamp类型。注意timestamp()函数参数的字符串格式只能是‘2019-10-1-9.59.59’或者‘2019-10-1 9:59:59’两种格式。横杠(-)不能改为斜杆(/),且若日期和时间之间有横杠(-)的话,时分秒时间必须为点(.),不能为冒号(:)。

另外,上面的两条SQL语句的效果是一样的,区别在于第一条的trim()函数,TRIM函数用于清除空格,除了单词之间的单个空格外,文本中所有的空格将被清除。在从其他应用程序中获取带有不规则空格的文本时,可以使用函数 TRIM。char()函数只是确保为字符串。

如有不足之处,还请大家私信或者评论指出!QAQ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值