开发者社区 > 数据库 > 数据仓库 > 正文

adb中我有个字符串字段(日期时间), 类似2021-01-01 13:32:31, 如何转成dat

adb中我有个字符串字段(日期时间), 类似2021-01-01 13:32:31, 如何转成dateime, 异常格式赋null, date函数会报错, str_to_date(a, '%H-%i-%s %H:%m-%s)好像都报异常?

展开
收起
真的很搞笑 2023-04-27 08:18:48 271 0
2 条回答
写回答
取消 提交回答
  • 使用STR_TO_DATE()函数将异常格式的字符串转换为日期时,如果无法解析该字符串,则会将其转换为NULL。确认输入的字符串是否符合指定的日期格式,否则可能会导致转换失败并得到NULL值。,此回答整理自钉群“云数据仓库ADB-开发者群”

    2023-04-27 17:35:05
    赞同 展开评论 打赏
  • 可以使用STR_TO_DATE函数将字符串转换为日期时间格式,STR_TO_DATE函数的使用方式是:STR_TO_DATE(str, format)。

    在上述问题中,日期时间字符串的格式为'2021-01-01 13:32:31',因此需要使用 '%Y-%m-%d %H:%i:%s' 的格式参数。示例如下:

    SELECT STR_TO_DATE('2021-01-01 13:32:31', '%Y-%m-%d %H:%i:%s');
    

    该语句将返回 '2021-01-01 13:32:31' 的日期时间类型。

    如果日期时间字符串的格式不符合所指定的格式参数,则会返回NULL值。例如,如果日期时间字符串的格式为 '2021-01-01 13:32',则需要将 '%s' 替换为 '%i':

    SELECT STR_TO_DATE('2021-01-01 13:32', '%Y-%m-%d %H:%i:%s');
    

    该语句将返回NULL值。

    如果您希望在转换时忽略字符串中的格式错误,可以使用 'STRICT_ALL_TABLES' 模式来禁用严格模式,在此模式下,转换过程中遇到格式错误将返回NULL值。实例如下:

    SET sql_mode = 'STRICT_ALL_TABLES';
    
    SELECT STR_TO_DATE('2021-01-01 13:32:31', '%Y-%m-%d %H:%m:%s');
    

    该语句将返回NULL值。

    2023-04-27 10:25:16
    赞同 展开评论 打赏

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

相关产品

  • 云原生数据仓库 AnalyticDB PostgreSQL版
  • 相关电子书

    更多
    消电行业数据中台解决方案白皮书 立即下载
    (终极版)2020阿里云金融数据中台报告 立即下载
    2020年中国乳制品行业数据中台研究报告 立即下载