Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我可以将varchar更改为带有日期名称的日期吗_Mysql_Date_Varchar - Fatal编程技术网

Mysql 我可以将varchar更改为带有日期名称的日期吗

Mysql 我可以将varchar更改为带有日期名称的日期吗,mysql,date,varchar,Mysql,Date,Varchar,在Mysql中,是否可以将Varchar格式更改为日期格式,但使用日期名称ie 当前日期格式 2013年9月16日星期一 我其实想有一天的'星期一'包括在内,但我的问题似乎是按日期实际订单字母顺序,所以想转换为日期格式,如果可能的话 谢谢你就像eggyal说的那样 SELECT STR_TO_DATE('Monday 16th September 2013','%W %D %M %Y') 为指定的日期布局执行作业 这也适用于包含日期的列。例如,如果列中有这些日期: what_day Mon

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

当前日期格式 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')
使日期按日期顺序排列。见此:

注意,MySQL不会检查你的日期是否有效。它忽略了一周中的哪一天。而且,如果你把2013年9月31日(不是一个有效的日期)放进去,MySQL会合理地认为你指的是2013年10月1日

这使得我们可以做各种各样的日期运算,比如

SELECT STR_TO_DATE('Monday 16th September 2013','%W %D %M %Y') 
       - INTERVAL 1 QUARTER

它还允许正确排序。

。很抱歉消息不明确,STR_TO_DATE()我可以在一个日期开始工作,但该列包含许多日期,并且希望转换整个列。感谢您的回复。只需将函数的
str
参数(即它的第一个)替换为列引用即可。您好,感谢您的回复,因为我的消息有点模糊,类似这样的内容适用于整列日期,因为我只能在单个日期的基础上使用它。谢谢Date列名为Date,表名为TEST,因此我使用了以下SELECT
Date
FROM TEST ORDER BY stru_TO_Date(Date,'%W%D%M%Y'),它只返回日期(显然),但没有转换为日期格式,它们仍然显示2013年9月16日星期一的格式。再次感谢您在SQL中,处理常量的函数也处理列的内容。这是非常普遍的,也是在SQL中使用函数的全部要点。通常通过单击绿色的大纲检查图标来接受帮助您的答案。对不起,第一篇帖子:-)