我的日期格式类似于“201710”。我正在尝试将此特定字符串转换为“2017-10-01”。如何将上述格式转换成mysql中所需的格式?我已尝试使用以下查询:
SELECT *, DATE_FORMAT(yymm,'%Y-%m-%d') AS niceDate FROM table;
但是nicedate列显示为null。谁能帮帮我吗。。。。
2ledvvac1#
我是sql新手,但我认为您需要指定要格式化的列,例如,我不确定您的数据的确切代码,但类似于;
select *, DATE_FORMAT(yourdata, "%Y/%m/%d") as niceDate from table;
将“yourdata”更改为要格式化的日期列。如果有帮助,请告诉我,谢谢:)
dfuffjeb2#
您可以使用:
SELECT STR_TO_DATE(yourdatefield, '%m/%d/%Y') as FROM table
“yourdatefield”替换为日期列名。
xmakbtuz3#
You can use STR_TO_DATE() funcion to convert string to date,
在您的示例中,您没有提供日部分,您只提供年和月,但是为了使用此函数,您的字符串应该具有年、月和日部分示例
SELECT STR_TO_DATE('20171001','%Y%m%d') ;
fxnxkyjh4#
你可以在你的字符串/字段上加字母,然后你就有了一个有效的日期
SELECT str_to_date(CONCAT('201710','01'),'%Y%m%d');
样品
MariaDB [(none)]> SELECT str_to_date(CONCAT('201710','01'),'%Y%m%d'); +---------------------------------------------+ | str_to_date(CONCAT('201710','01'),'%Y%m%d') | +---------------------------------------------+ | 2017-10-01 | +---------------------------------------------+ 1 row in set (0.00 sec) MariaDB [(none)]>
4条答案
按热度按时间2ledvvac1#
我是sql新手,但我认为您需要指定要格式化的列,例如,我不确定您的数据的确切代码,但类似于;
将“yourdata”更改为要格式化的日期列。如果有帮助,请告诉我,谢谢:)
dfuffjeb2#
您可以使用:
“yourdatefield”替换为日期列名。
xmakbtuz3#
在您的示例中,您没有提供日部分,您只提供年和月,但是为了使用此函数,您的字符串应该具有年、月和日部分示例
fxnxkyjh4#
你可以在你的字符串/字段上加字母,然后你就有了一个有效的日期
样品