0

当我尝试将 varchar 转换为日期时,我得到 Null 值作为回报。

我的专栏中有 05-MAR-2015 的值。

我正在运行以下查询。

select STR_TO_DATE('n.Invoice_date','%d-%c-Y') from table n;

一旦我运行上面的查询,我就会得到空值作为回报。

我想以日期格式介绍一个新列。

4

2 回答 2

1

请注意,文字字符串'n.invoice_date'不是有效日期。你的意思是:

SELECT STR_TO_DATE(n.invoice_date, '%d-%b-%Y') FROM TABLE n
于 2016-11-03T07:37:14.450 回答
0

您的错误是使用%c而不是%b获取日期。您将日期格式与日期值的创建混合在一起。这应该这样做:

SELECT DATE_FORMAT(STR_TO_DATE(n.invoice_date,'%d-%b-%Y'), '%d-%c-%Y') FROM table n;

这导致:05-3-2015

在这里,您首先创建一个日期,STR_TO_DATE该日期必须与字段中存储的格式相匹配。然后你可以用DATE_FORMAT你想要的方式格式化它。

有关更多信息,请参阅 MYSQL 文档:http: //dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

于 2016-11-03T07:51:35.270 回答