0

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

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

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

谢谢

4

1 回答 1

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

它还允许正确排序。

于 2013-09-16T19:06:40.897 回答