【问题标题】:Convert string to date in SQLServer在 SQL Server 中将字符串转换为日期
【发布时间】:2014-03-06 12:18:07
【问题描述】:

我在一个表中有以下字符串

SEP 21 2009OCT 7 2009

有没有办法将它们转换为 SQL 中的日期格式?我想检查它们的日期。

【问题讨论】:

    标签: sql sql-server-2008 datetime ssms


    【解决方案1】:

    您可以使用CONVERT()CAST()

    使用 CONVERT():

    CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
    

    例如:

    SELECT CONVERT(DATETIME,'2014/10/15 11:27:06 PM',20)
    

    SQL Fiddle 中查看CONVERT() 的示例

    使用CAST()

    CAST ( expression AS data_type [ (length)]) 
    

    例如:

    SELECT CAST('MAR 2 1991' as date) as DateValue
    SELECT CAST('2013-04-16' AS datetime) AS DateValue
    

    SQL Fiddle 中查看CAST() 的示例。

    阅读更多here

    【讨论】:

    • 当我尝试演员时,我收到以下错误:类型 DATE 不是定义的系统类型。
    【解决方案2】:

    是的,你可以使用CONVERT(DATETIME,inputdate) AS inputdate

    有关更多日期时间格式,您可以访问1

    【讨论】:

    • 我得到这个错误:从字符串转换日期时间时转换失败。
    • 我看到之前,我有表中的值,我想做的只是直接从中选择,我尝试使用 SELECT Cast(DD as date) 和 SELECT CAST(DD作为日期时间)和 SELECT Convert(DateTime,DD)
    【解决方案3】:

    您可以使用 CONVERT 或 CAST。请在线查看文档。

    【讨论】:

      【解决方案4】:
      declare @a varchar(20)
      set @a='SEP 21 2009'
      
      select cast(@a as date)
      

      SEE DEMO

      【讨论】:

        【解决方案5】:

        您可以使用 CONVERT 或 CAST。
        更多信息在这里:http://msdn.microsoft.com/en-us/library/ms174450.aspx

        【讨论】:

          【解决方案6】:
          select date_col, cast(date_col as date) as dt
          from date_tab
          

          SQL Fiddle

          【讨论】:

          • 请注意,用户要求使用 SQL Server 2008 ..(我检查过 - 它们都是相同的结果)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-08-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-26
          相关资源
          最近更新 更多