我希望将日期格式从mm/dd/yyyy转换为yyyy/mm/dd。我要日期时间格式的输出。我试过这个
转换(日期时间,转换(varchar,getdate(),111),123)
但不起作用。错误是“显式转换为日期时间不可用”--解决这个问题的最佳方法是什么?我在用赛贝斯。
发布于 2011-02-24 22:28:06
那不管用。DATETIME数据类型有其自己的格式,即自固定引用日期以来所经过的时间;如果您请求日期时间,则始终会根据该格式返回日期时间。
如何向最终用户显示它是客户端的一个功能。您可以使用“转换”将其转换为字符串,并为其在字符串中的显示方式指定格式,但随后返回的是字符串,而不是日期时间。您可以将它作为一个日期时间返回(它没有固有的显示格式),然后由客户端应用程序或OS来定义如何为显示而格式化。在客户端应用程序中,通常还具有根据指定的格式显示日期/时间的格式化函数。如果您没有在应用程序中显式地指定它,那么日期/时间的显示通常将由OS中的本地化设置定义。
基本上,数据类型--日期时间--与其对最终用户的表示之间存在差异。
发布于 2011-02-24 22:26:18
尝尝这个
选择转换(varchar,CAST('12/11/2010‘as DateTime),111)
发布于 2011-02-25 02:28:02
格式设置应该在表示层而不是数据层中进行。然而,像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 ) https://stackoverflow.com/questions/5111162
复制相似问题