【问题标题】:Sql convert date formatsql转换日期格式
【发布时间】:2011-02-24 22:12:53
【问题描述】:

我想将日期格式从 mm/dd/yyyy 转换为 yyyy/mm/dd。我想要日期时间格式的输出。 我试过这个

convert(datetime,convert(varchar,getdate(),111),123)

但不起作用。错误是“无法显式转换为日期时间” 解决此问题的最佳方法是什么?我正在使用 Sybase。

【问题讨论】:

  • 什么样的服务器? Mssql、postgresql、mysql、oracle 等对于日期时间是重要的信息。

标签: sql sybase


【解决方案1】:

试试这个

select convert(varchar,CAST('12/11/2010' as DateTime),111)

【讨论】:

    【解决方案2】:

    那是行不通的。 DATETIME 数据类型有自己的格式,它实际上是自固定参考日期以来经过的时间量;如果您要求 DATETIME,它将始终根据该格式返回。

    如何向最终用户显示是客户端的一项功能。您可以使用 CONVERT 将其转换为字符串并指定其在字符串中的显示格式,但是您返回的是字符串,而不是 DATETIME。您可以将其作为 DATETIME(没有固有的显示格式)返回,然后由客户端应用程序或操作系统来定义如何格式化以进行显示。在客户端应用程序中,您通常还具有根据您指定的格式显示日期/时间的格式化函数。如果您没有在应用程序中明确指定它,那么日期/时间的显示通常由操作系统中的本地化设置定义。

    基本上,数据类型 - DATETIME - 和它对最终用户的表示是不同的。

    【讨论】:

      【解决方案3】:

      格式化应该在表示层而不是数据层中完成。但是,大多数供应商,如 Sybase,都提供了进行基本格式化的能力:

      Select Cast( Year(GetDate()) As char(4)  )
          + '/' + Right( '00' + Cast( Month(GetDate()) As varchar(2) ), 2 )
          + '/' + Right( '00' + Cast( Day(GetDate()) As varchar(2) ), 2 ) 
      

      【讨论】:

        【解决方案4】:

        试试这个查询

        select (CONVERT(varchar(10), GETDATE(), 120))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-01-23
          • 2021-04-30
          • 2015-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-08
          相关资源
          最近更新 更多