当我尝试将varchar转换为date时,我会得到Null值。
我的专栏中有05-MAR-2015的价值观。
我正在运行以下查询。
select STR_TO_DATE('n.Invoice_date','%d-%c-Y') from table n;
一旦我在查询之上运行,我得到空值。
我想以日期格式引入一个新列。
答案 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