我的日期格式为 15-Nov-20
。我想在将数据插入表之前使用查询将其转换为 MySQL 表的日期格式 (yyyy-mm-dd),并希望分别获取该日期的周和年。我尝试过以下查询:
SELECT STR_TO_DATE('15-Nov-20', '%Y-%m-%d') FROM table
但这会返回NULL
。
最佳答案
您的格式字符串不正确(请参阅 manual )。对于您的示例数据,它应该是 %d-%M-%y
例如
SELECT STR_TO_DATE('15-Nov-20', '%d-%M-%y')
输出:
2020-11-15
要获取年份和星期,您可以将 DATE_FORMAT
与 %U
、%u
、%V 之一结合使用
或 %v
取决于您的需求(有关其定义,请参阅 manual),例如
SELECT DATE_FORMAT(STR_TO_DATE('15-Nov-20', '%d-%M-%y'), '%Y-%U')
输出
2020-46
请注意,如果您使用 %V
或 %v
作为周数,则还必须使用 %X
或 % x
代表年份,例如
SELECT DATE_FORMAT(STR_TO_DATE('15-Nov-20', '%d-%M-%y'), '%X-%V')
输出
2020-46
关于mysql - 将字符串转换为日期格式并检索周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59764327/