我可以将varchar更改为Date with Day name

时间:2013-09-16 18:50:08

标签: mysql date varchar

是否可以在Mysql中将Varchar更改为Date格式,但使用日期名称

当前日期格式 2013年9月16日星期一

我实际上喜欢将“星期一”包括在内,但我的问题似乎是按日期排序实际按字母顺序排序,所以如果可能的话,我想转换为日期格式。

谢谢

1 个答案:

答案 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

它还允许正确的排序。