sql - 从 Varchar 中提取日期
问题描述
我在其中一列中有如下数据。
SEMANA 50-15 (13-12-15)
数据类型 :Varchar
我想2015-12-13
在 Microsoft-SQL 中将上述数据转换为这种格式。请帮我语法。
解决方案
如果日期始终位于末尾并且始终采用 '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.asp或Microsoft 页面以获取有关CONVERT
if的不同选项的更多信息你感兴趣。
推荐阅读
- push-notification - 推送通知到用户手机
- java - 在运行时设置字符串中的值
- powershell - 优化 Get-WinEvent 以更快地运行条目
- javascript - jquery $.post - 发送一个 7KB 的字符串 - 导致 403 错误
- amazon-dynamodb - DynamoDB 事务写入超过 25 项
- c# - C#,React,从 JSON 文件中获取数据
- python - 如何在 Pandas Dataframe 中为 TimedeltaIndex 添加偏移量
- python - 如何更正此“IndexError: list assignment index out of range in this code”将txt文件每行的编号另存为索引?
- java - Spring Boot ServletContextListener 和 @ImportResource 顺序
- ethereum - 将智能合约部署到 Aurora 时,Truffle 中的网络数据