mariaDB中的STR_TO_DATE结果为NULL

xsuvu9jc  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(47)

我有一个超过150 k条目的表。日期列包含德语格式的日期(日.月.年)。我不能将'DATE'设置为数据类型- maria不接受这种格式。所以我尝试重新配置日期字符串:

select datum,
CAST(STR_TO_DATE(datum, '%d.%M.%Y') AS DATE) 
FROM esf
WHERE ESF_ID = 44421;

字符串
由于150 k我只是在一行中尝试,避免了性能问题。结果:Maria找到了相关条目-执行强制转换结果为(NULL)。我不知道为什么?
我尝试了不同的SQL调用,但都不起作用

mgdq6dx1

mgdq6dx11#

  1. STR_TO_DATE中的%M在当前区域设置中需要完整的月份名称,而使用m表示2位数的月份:
  2. STR_TO_DATE返回一个日期,因此不需要将日期转换为date。
    标签:STR_TO_DATE
jslywgbw

jslywgbw2#

查看日期:

SELECt *
FROM (
   SELECT
      LEFT(datum,2) as D,
      MID(datum,4,2) as M,
      RIGHT(RTRIM(datum),4) as Y
   FROM esf
  ) x
WHERE d<1 or d>31 or m<1 or m>12 or y<1970 or y>2023;

字符串
DBFIDDLE需要对少于31天的月份进行一些改进!(当然,一年中的范围应该根据您自己的需要进行调整)

相关问题