Sql转换日期格式

时间:2011-02-24 22:12:53

标签: sql sybase

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

  

转换(日期时间,转换(VARCHAR,GETDATE(),111),123)

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

4 个答案:

答案 0 :(得分:3)

试试这个

选择转换(varchar,CAST('12 / 11/2010'作为DateTime),111)

答案 1 :(得分:1)

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

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

基本上,数据类型 - DATETIME - 与最终用户的表示之间存在差异。

答案 2 :(得分:1)

格式化应该在表示层而不是数据层中完成。但是,大多数供应商(如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 ) 

答案 3 :(得分:0)

尝试此查询

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