当我尝试将 varchar 转换为日期时,我得到 Null 值作为回报。
我的专栏中有 05-MAR-2015 的值。
我正在运行以下查询。
select STR_TO_DATE('n.Invoice_date','%d-%c-Y') from table n;
一旦我运行上面的查询,我就会得到空值作为回报。
我想以日期格式介绍一个新列。
当我尝试将 varchar 转换为日期时,我得到 Null 值作为回报。
我的专栏中有 05-MAR-2015 的值。
我正在运行以下查询。
select STR_TO_DATE('n.Invoice_date','%d-%c-Y') from table n;
一旦我运行上面的查询,我就会得到空值作为回报。
我想以日期格式介绍一个新列。
请注意,文字字符串'n.invoice_date'
不是有效日期。你的意思是:
SELECT STR_TO_DATE(n.invoice_date, '%d-%b-%Y') FROM TABLE n
您的错误是使用%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