【问题标题】:SQL convert 'DDMMYY' to datetimeSQL 将 'DDMMYY' 转换为日期时间
【发布时间】:2012-11-22 11:40:33
【问题描述】:

我正在尝试在 SQL Server 中将日期从 DDMMYY 格式转换为 datetime

我使用convert命令如下

select convert (datetime, '311012', <style>)

我尝试在 msdn 上查找支持的样式,但没有找到完全匹配的。

我们将不胜感激。

【问题讨论】:

  • 你的意思是你有一个字符串,代表一个日期,格式为DDMMYY
  • 一个很好的解释:- stackoverflow.com/questions/207190/…
  • 是的,我有一个没有空格的 DDMMYY 格式的字符串。例如 - '311012'
  • 如果这是一个字符串文字,你怎么知道YY20yy还是19yy?在您的示例中是2012 还是1912
  • @Pranav 我确实看过那个解释以及 MSDN 页面 - 但我的确切格式 DDMMYY 没有示例

标签: sql sql-server


【解决方案1】:
select convert (datetime,  Stuff(Stuff('311012',5,0,'.'),3,0,'.'), 4)

【讨论】:

  • "Stuff" 在另一个字符串中插入一个字符串。在此示例中,“Stuff”被使用两次以插入两个句点(在索引 5(第一个)和 3(最后一个)处)。从而将“311012”转换为“31.10.12”,这是转换可以理解的日期时间格式(4)。
【解决方案2】:

试试这样:-

declare  @val1 varchar(30)
select @val1=SUBSTRING('311012',1 ,2)+'/'+SUBSTRING('311012',3 ,2)+'/'+'20'+SUBSTRING('311012',5 ,2)
SELECT CONVERT(datetime,@val1,103)

【讨论】:

    【解决方案3】:
    select CAST('121031' AS datetime)  as d -- For YYMMDD
    

    【讨论】:

      猜你喜欢
      • 2019-08-02
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      相关资源
      最近更新 更多