我有一个像这样的字符串:
'间谍美国 03/20/20 P45'
我只想从字符串中选择日期。
我目前的查询是:
Select Ticker, SUBSTRING(Ticker, PATINDEX('%[0-9][0-9]/[0-9][0-9]/[0-9][0-9]%',o.Ticker),8) AS 'myDate' FROM TABLE
这将返回:'SPY US 03/20/20 P45', 03/20/20
我希望 myDate 处于日期时间。
我尝试了各种转换和转换的变形,但都失败了,大概是因为他们希望格式为 YYYY-MM-DD 而不是 MM/DD/YY。
我的“最聪明”的转换尝试是这样的:
CONVERT(DATETIME, SUBSTRING(o.Ticker, PATINDEX('%[0-9][0-9]/[0-9][0-9]/[0-9][0-9]%',o.Ticker),8),1)
在这里阅读风格指南后:https ://www.w3schools.com/sql/func_sqlserver_convert.asp 但它仍然失败。
日期的理想结束格式是 YYYY-MM-DD
编辑添加:
我一直在摆弄它,并意识到我过度简化了我的问题。如果我只是在一个字符串上测试它,转换就可以工作,但整个查询涉及多个连接。