gpt4 book ai didi

mysql - 如何获得真实日期而不是实际日期

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:01 25 4
gpt4 key购买 nike

我正在尝试实现这个查询:

SELECT 
str_to_date(concat(Right(Born,2),"/", Mid(Born,6,2),"/",Left(Born,4)),'%d/%m/%y') as Born_Date,

str_to_date(concat(Right(FirstTime,2),"/", Mid(FirstTime,6,2),"/",Left(FirstTime,4)),'%d/%m/%y') as First_Date

FROM ItalianAthletes
where Born is not null and char_length(born)=10
and FirstTime is not null

我的数据库中有这种格式的日期(示例):22-07-1877。

但是我得到的不是这个日期:2018-07-22

如何得到1877而不是2018?

最佳答案

您使用的是两位数年份的 %y,您应该使用 %Y

此外,没有理由使用 LEFT()、RIGHT() 和 MID() 来完成所有这些工作。您可以在 STR_TO_DATE() 的格式字符串中使用破折号而不是斜杠。

mysql> set @born = '22-07-1877';

mysql> select str_to_date(@born, '%d-%m-%Y');
+--------------------------------+
| str_to_date(@born, '%d-%m-%Y') |
+--------------------------------+
| 1877-07-22 |
+--------------------------------+

请考虑使用真正的 DATE 列而不是使用 VARCHAR 作为日期。做日期运算、日期函数、排序、搜索等会更简单。

最好在您的表示层中将其格式化为 dd-mm-YYYY。

关于mysql - 如何获得真实日期而不是实际日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47439695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com