是否可以在Mysql中将Varchar更改为Date格式,但使用日期名称
当前日期格式 2013年9月16日星期一
我实际上喜欢将“星期一”包括在内,但我的问题似乎是按日期排序实际按字母顺序排序,所以如果可能的话,我想转换为日期格式。
谢谢
答案 0 :(得分:0)
像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
它还允许正确的排序。