繁体   English   中英

SQL转换日期格式

[英]Sql convert date format

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

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

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

尝试这个

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

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

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

基本上,数据类型DATETIME与它对最终用户的表示之间有区别。

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

试试这个查询

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM