#DATE

date
DATE ( expr , format )

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

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

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

format

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

  • 年:'YYYY'、'Y'、'YY'、'YYY'
  • 月:'MM'、'MON'、'MONTH'
  • 日:'DD'
  • 周:'W'、'DAY'、'D'
  • 时:'HH'、'HH24'
  • 分:'MI'
  • 秒:'SS'
  • 连接字符:':', '-', '/', '.', ',', ';', '\', '_', ' '
  • ':', '-', '/', '.', ',', ';', '\', '_':八种连接符相互一对一兼容匹配
  • ' ':忽略所有空格,空格不参与匹配

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

示例

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                      

--不兼容匹配默认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
pdf-btn 下载文档
copy-btn 复制链接