写点什么

YashanDB DATE 函数

作者:YashanDB
  • 2025-05-08
    广东
  • 本文字数:946 字

    阅读完需:约 3 分钟


DATE 函数有 1 或 2 个参数。当只有一个expr参数时,DATE 函数将 expr 的值按照配置参数 DATE_FORMAT 指定格式进行 DATE 类型转换;当有两个参数时,DATE 函数将 expr 的值按照第二个参数 format 进行格式转换。

expr

表达式 expr 的数据类型须为 DATE/TIMESTAMP/TIME 类型,内容不论是否符合 date_format 或 format 格式,都返回正确结果。

当 expr 的值为 NULL 时,函数返回 NULL。

format

format 支持中文年月日,须用双引号包围中文字符,expr 中的中文字符无须用双引号包围。

指定转换的格式,包括如下字符组合:

  • 年年份数字:YYYYYYYYYY

  • 月月份数字:MM月份全称:MONTH月份缩写:MON

  • 日日期数字:DD

  • 日期描述一周中的一天全称(SUNDAY-SATURDAY):DAY一周中的一天数字(1-7):D一年中的一天(1-366):DDD

  • 时 24 小时制小时:HH2412 小时制小时:HHHH12

  • 分分钟数:MI

  • 秒秒数:SS

  • 连接字符::-、 /、 .、 ,、 ;、 \、 _:-、 /、 .、 ,、 ;、 \、 _:八种连接符相互一对一兼容匹配:忽略所有空格,空格不参与匹配

不指定 format 时,系统按 DATE 类型指定的默认格式进行转换,如果 expr 内容不符合默认格式,返回格式匹配错误。

当 format 的值为 NULL 时,函数返回 NULL。

示例

SELECT DATE( 'January 15, 1989, 11:00 A.M.', 'Month dd, YY, HH:MI A.M.' ) res FROM DUAL;RES                               --------------------------------1989-01-15 11:00:00     SELECT DATE( '1989/2/23', 'YYYY/MM/DD HH24:MI:SS' ) res FROM DUAL;RES                             --------------------------------1989-02-23 00:00:00
SELECT DATE( '1989/2/23' ) res FROM DUAL;RES-------------------------------- 1989-02-23
SELECT DATE( '1989/2/23', '') res FROM DUAL;
RES--------------------------------

SELECT DATE( '1989/2/23', null) res FROM DUAL;
RES--------------------------------
SELECT DATE('1989年2月23日','YYYY"年"MM"月"dd"日"') RES FROM DUAL;
RES--------------------------------1989-02-23 00:00:00
--不兼容匹配默认DATE格式'YYYY-MM-DD'时,返回错误SELECT DATE( '1989//2/23' ) res FROM DUAL;[1:16]YAS-00008 type convert error : literal does not match format string
复制代码


用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB DATE函数_YashanDB_InfoQ写作社区