是否可以在 Mysql 中从 Varchar 更改为 Date 格式但使用日期名称,即
当前日期格式 2013 年 9 月 16 日星期一
我实际上喜欢包含“星期一”这一天,但我的问题似乎是按日期排序,实际上是按字母顺序排序,所以如果可能的话,我想转换为日期格式。
谢谢
就像 Eggyal 说的,
SELECT STR_TO_DATE('Monday 16th September 2013','%W %D %M %Y')
执行您指定的日期布局的工作。
这也适用于包含日期的列。例如,如果您在一列中有这些日期:
what_day
Monday 16th September 2013
Tuesday 17th September 2013
Thursday 19th September 2013
Friday 20th September 2013
Saturday 21st September 2013
Thursday 19th September 2013
你可以做
SELECT what_day
FROM days
ORDER BY STR_TO_DATE(what_day,'%W %D %M %Y')
按日期顺序获取天数。看到这个: http ://sqlfiddle.com/#!2/74c58/1/0
请注意,MySQL 不会检查您的日期是否有效。它忽略了星期几。而且,如果您输入 2013 年 9 月 31 日(不是有效日期),MySQL 会合理地认为您的意思是 2013 年 10 月 1 日。
这使得可以做各种漂亮的日期算术,比如
SELECT STR_TO_DATE('Monday 16th September 2013','%W %D %M %Y')
- INTERVAL 1 QUARTER
它还允许正确排序。