我想将dateformat从mm / dd / yyyy转换为yyyy / mm / dd。我想要输出日期时间格式。 我试过这个
转换(日期时间,转换(VARCHAR,GETDATE(),111),123)
但不起作用。错误是“显式转换为日期时间不可用” 解决这个问题的最佳方法是什么?我正在使用Sybase。
答案 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))