GBase 8s中TO_DATE函数使用

TO_DATE 函数将字符串转换为 DATETIME 数据类型。支持转换的字符型数据包括:CHAR、VARCHAR2、NCHAR 或 NVARCHAR2。

TO_DATE 函数有此语法:

此函数的第一个参数 source_char(源字符串)支持公元、年、月、日、时、分、秒、亚秒等时间格式。通常『年-月-日 时:分:秒』具有的格式如下:

  1.   年度部分(YYYY):支持1~4位有效数字;
    
  2.   月份部分(MM):取值范围为[0,12],0~9支持设置为00~09;
    
  3.   日期部分(DD):取值范围为[0,31],0~9支持设置为00~09;
    
  4.   小时部分(HH/HH12/HH24):hh/hh12取值范围为[0,12],hh24取值范围为[0,24],0~9均支持设置为00~09;
    
  5.   分钟部分(MI):取值范围为[0,59],0~9支持设置为00~09;
    
  6.   秒钟部分(SS):取值范围为[0,59],0~9支持设置为00~09。
    

此函数的第二个参数 fmt(格式化串)设置为:『YYYY-MM-DD HH:MI:SS』,连接字符与源字符串相对应,不区分大小写。使用时,用单(双)引号包围。

在下列示例中,用户输入 SELECT 查询语句,对 TO_DATE 函数进行查询,将字符串转换为 DATETIME 类型。

select to_date(’2017-07-21 13:33:24’, ’YYYY-MM-DD HH:MI:SS’);

返回结果为:

2017-07-21 13:33:24

如果设置省略参数中对应的元素,则执行结果通过to_char函数展示时包括年、月、日、时、分、秒、亚秒全部信息,显示形式为:年-月-日 时:分:秒.亚秒(2017-07-01 00:00:00.000000)。缺省信息系统自动补齐。缺省‘年’则补齐当前年;缺省‘月’则补齐当前月;缺省‘日’则补齐第一天;缺省‘时’、‘分’、‘秒’则补齐‘00’;缺省‘亚秒’则补齐‘000000’。

例如,在以下示例中,对 TO_DATE 函数进行查询。

select to_date(’07-21’,‘MM-DD’);

返回结果如下:

2017-07-21 00:00:00.000000

又如,以下 SQL 语句,对于缺省的‘年、月、日’补齐当前年的当前月的第一天:

select to_date(’13:33’,‘HH:MI’);

返回结果如下:

2017-10-01 13:33:00.000000

如果省略 fmt 参数(格式化串),只有当 source_char 参数(源字符串)格式为‘年月日’、‘年月日时分’、‘年月日时分秒’时,TO_DATE 函数执行成功。否则函数执行失败,系统提示错误。

例如,在以下示例中对 TO_DATE 函数进行查询,设置省略 fmt 参数(格式化串)。

select to_date(’2017-07-21 13:33:24’);

返回结果如下:

2017-07-21 13:33:24.000000

以下语句执行失败。

select to_date(’07-21 13:33:24’);

source_char 参数(源字符串)与 fmt 参数(格式化串)还可以设置为嵌套函数、表达式、字符数据类型列。例如,在以下示例中,将TO_DATE 函数的第二个参数设置为 CAST表达式:

select (to_date(’10-12 23:56:33’, cast(’mm-ddhh12:mi:ss’as char(30))) ;

返回结果如下:

2017-10-12 23:56:33.000000

如果 source_char参数(源字符串)与 fmt 参数(格式化串)之间存在连接字符省略的情况,则当源字符串和格式化串省略的位置相同时,TO_DATE 函数执行成功,系统返回正确的结果。例如,

select (to_date(’20110911 23:11:24’,’YYYYMMDD HH:MI:SS ’);

返回结果如下:

2011-09-11 23:11:24.000000

而当源字符串的连接字符省略,对应的格式化串中的连字符未省略时,函数执行失败,系统返回错误。例如,以下查询语句执行失败:

select to_date(’201707-21’, ’YYYY-MM-DD HH:MI:SS’);

此外,如果将这两个参数的连接字符设置为数字、字母,TO_DATE 函数会执行失败,系统返回错误。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值