首页 > 解决方案 > 从 Varchar 中提取日期

问题描述

我在其中一列中有如下数据。 SEMANA 50-15 (13-12-15) 数据类型 :Varchar

我想2015-12-13在 Microsoft-SQL 中将上述数据转换为这种格式。请帮我语法。

标签: sqlsql-server

解决方案


如果日期始终位于末尾并且始终采用 'DD-MM-YY)' 格式(即日期中有 8 个字符,并且日期在末尾前一个字符结束),那么应该这样做:

SELECT CONVERT(DATE, REPLACE(SUBSTRING(YourFieldName, LEN(YourFieldName)-8,8),'-','/'), 3) 
FROM YourTableName

为了打破它,假设它可以找到从末尾开始的八个字符的日期的开始(所以必须是 DD-MM-YY 格式),它使用SUBSTRING命令提取日期。然后它会将REPLACE“-”更改为“/”,以便该CONVERT命令可以正常工作并以您指定的格式返回日期。

请注意,上面返回 a Date,如果您特别需要返回 aVARCHAR那么您可以申请第二个CONVERT,请参阅https://www.w3schools.com/sql/func_sqlserver_convert.aspMicrosoft 页面以获取有关CONVERTif的不同选项的更多信息你感兴趣。


推荐阅读