【问题标题】:How to change the date format如何更改日期格式
【发布时间】:2011-12-26 08:11:45
【问题描述】:

表:

Dates (nvarchar)
==
23/02/2009 (dd/mm/yyyy)
24/02/2009
25/08/2009
28/12/2011
....

我想像这样更改日期形式(yyyymmdd)

尝试查询

select cast(dates as datetime) from table1

显示错误

Ю算术表达式溢出

select Convert(char(10), dates, 112) from table1

显示相同的值 23/02/2009

上述查询无效。

预期输出

20090232
20090224
20090825
20111228
...

如何查询?

【问题讨论】:

  • 如果这些是 日期 -ö 那么 WHY 它们是否存储为 varchar ????

标签: sql sql-server tsql sql-server-2000 datetime-format


【解决方案1】:

Use this article.

select CONVERT(varchar(8),CONVERT(datetime, '23/02/2009',103),112)

【讨论】:

    【解决方案2】:

    试试这个简单的查询:

    SELECT DATEPART(yyyy,dates)+DATEPART(m,dates)+DATEPART(d,dates) FROM table1
    

    您可以通过此链接获取更多信息: sql-server-dates

    【讨论】:

      【解决方案3】:
      select convert(varchar, getdate(), 102)[Dates] from tablename
      

      看看这个链接:http://www.technoreader.com/SQL-Server-Date-Time-Format.aspx

      【讨论】:

        【解决方案4】:

        由于这些存储为字符串数据,那么您不妨使用字符串函数来为您提供所需的内容。

        首先给你一个有效的日期

        select 
            cast(SUBSTRING(dates,4,2) + '/' + left(dates,2) + '/' + right(dates,4) as datetime) NowItsADateTime
        from DateTable
        

        第二,你要求什么。

        select right(dates,4) + SUBSTRING(dates,4,2) + left(dates,2) as YYYYMMDD
        from DateTable
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-10-28
          • 2011-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-12
          相关资源
          最近更新 更多