Mysql 将字符串转换为日期格式并检索周数
我有格式为20年11月15日的日期。在将数据插入表之前,我想使用查询将其转换为MySQL表的日期格式(yyyy-mm-dd),并分别获取该日期的周和年。我尝试了以下查询:Mysql 将字符串转换为日期格式并检索周数,mysql,string,date,Mysql,String,Date,我有格式为20年11月15日的日期。在将数据插入表之前,我想使用查询将其转换为MySQL表的日期格式(yyyy-mm-dd),并分别获取该日期的周和年。我尝试了以下查询: SELECT STR_TO_DATE('15-Nov-20', '%Y-%m-%d') FROM table 但这将返回NULL 您的格式字符串不正确(请参阅)。对于示例数据,它应该是%d-%M-%y,例如 SELECT STR_TO_DATE('15-Nov-20', '%d-%M-%y') 输出: 2020-11-
SELECT STR_TO_DATE('15-Nov-20', '%Y-%m-%d') FROM table
但这将返回
NULL
您的格式字符串不正确(请参阅)。对于示例数据,它应该是%d-%M-%y
,例如
SELECT STR_TO_DATE('15-Nov-20', '%d-%M-%y')
输出:
2020-11-15
然后,要获取年份和周,您可以使用DATE\U格式
和%U
、%U
、%V
或%V
中的一种格式,具体取决于您的需要(有关其定义,请参见)
输出
2020-46
2020-46
请注意,如果您对周数使用%V
或%V
,您还必须对年份使用%X
或%X
,例如
SELECT DATE_FORMAT(STR_TO_DATE('15-Nov-20', '%d-%M-%y'), '%X-%V')
输出
2020-46
2020-46
您还可以使用PHP的DateTime类获取周数和年数
$parsedDate = new DateTime('15-Nov-20');
$week = $parsedDate->format("W");
echo 'Weeknumber:' . $week;
echo '<br>';
$year = $parsedDate->format("Y");
echo 'Year:' . $year;