首页  >  问答  >  正文

标题重写为:将字符串转换为日期的中文翻译是MYSQL函数STR_TO_DATE

<p>我在这个日期中有这个日期: <code>STR_TO_DATE('28-AUG-60','%d-%M-%y')</code> 当我插入表时,我得到的是: <strong>2060-08-28 00:00:00</strong> 我期望的是: <strong>1960-08-28 00:00:00</strong> 我知道在MSSQL中有一个RR格式,它给你2位或4位数字的年份,00-49年代是20世纪,我在MySQL中该怎么做呢? 当我查看文档时,我发现它应该使用%Y,但实际上不起作用 谢谢!</p>
P粉270891688P粉270891688434 天前476

全部回复(1)我来回复

  • P粉436410586

    P粉4364105862023-09-03 09:07:18

    如果您知道所有大于某个值的两位数年份,比如'50',应被视为1900年代的年份,而其余的应被视为2000年代的年份,您可以使用CASE表达式来应用不同的日期格式:

    SELECT DATE(STR_TO_DATE(
             date,
             CASE WHEN RIGHT(date, 2) < ? THEN '%d-%M-%Y' ELSE '%d-%M-%y' END 
           )) date
    FROM tablename;

    ?更改为适合您数据的两位数年份(如'50')。

    请参见演示

    回复
    0
  • 取消回复