【问题标题】:Date in m/d/y in timestamp. How to convert to dd-mm-yyyy in mysql时间戳中以 m/d/y 为单位的日期。如何在mysql中转换为dd-mm-yyyy
【发布时间】:2021-12-12 03:25:03
【问题描述】:

我有一个如下所示的 DATETIME 列:

| XDATE           |
| 9/21/03 00:00:00|
| 8/12/10 00:00:00|
| 7/30/01 00:00:00| 
| 7/1/03 00:00:00 |
| 6/16/20 00:00:00|
| 5/31/04 00:00:00|
| 11/7/05 00:00:00|
| 1/8/06 00:00:00 |

我想将 XDATE 列转换为“DD-MMYYYY”格式。

我在下面尝试过

date_format(Xdate, '%d-%m-%Y'). 

但结果为 null,因为它考虑了格式 yyyy-mm-dd 并转换为 dd-mm-yyyy。

| XDATE           |
| 9/21/03 00:00:00| null
| 8/12/10 00:00:00|
| 7/30/01 00:00:00| null
| 7/1/03 00:00:00 | 
| 6/16/20 00:00:00| null
| 5/31/04 00:00:00|
| 11/7/05 00:00:00|
| 1/8/06 00:00:00 |

如何解决这个问题,将 Xdate 列转换为只显示日期,并将其格式化为“DD-MMYYYY”

【问题讨论】:

  • DATE_FORMAT 将日期转换为字符串,而您需要进行反向转换。使用 STR_TO_DATE()。
  • 转换成本非常高,您应该始终以 mysql 日期格式存储日期

标签: mysql date datetime timestamp


【解决方案1】:

使用:

create table test_tbl(
xdate varchar(50) );


INSERT INTO test_tbl
VALUES ('9/21/03 00:00:00'),
       ('8/12/10 00:00:00'),
        ('7/1/03 00:00:00') ;

SELECT   date_format(str_to_date(xdate, '%m/%d/%Y'), '%d-%m-%Y') as xdate
from test_tbl;

演示:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/126

有关日期格式的更多信息: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format

有关 str-to-date 的更多信息: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-to-date

【讨论】:

  • SELECT STR_TO_DATE(xdate, '%m/%d/%Y') AS xdate from test_tbl; 就够了。
  • @Akina 你不能只用 STR_TO_DATE 生成 DD-MM-YYYY,DATE_FORMAT 只是用来生成 OP 预期的日期格式
  • 你不能只用 STR_TO_DATE 生成 DD-MM-YYYY 抱歉,我不专心。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
  • 2013-10-19
  • 2013-12-07
相关资源
最近更新 更多