str_to_date返回null + mysql

时间:2016-11-03 07:33:48

标签: mysql str-to-date

当我尝试将varchar转换为date时,我会得到Null值。

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

我正在运行以下查询。

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

一旦我在查询之上运行,我得到空值。

我想以日期格式引入一个新列。

2 个答案:

答案 0 :(得分:1)

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

SELECT STR_TO_DATE(n.invoice_date, '%d-%b-%Y') FROM TABLE n

答案 1 :(得分: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