我希望将SQL Server日期格式(YYYY-MM-DD HH:MM:SS:MS)转换为US格式(MM / DD / YYYY HH:MM:SS),但数据类型应保持日期时间。
更多细节。抱歉,这可能会有所帮助。我有一个使用SQL Server 2008中的视图的第三方应用程序。但是,如果数据类型是日期或日期时间,这个应用程序将只允许我过滤日期,这就是使用convert和varchar在这种情况下不起作用的原因。
答案 0 :(得分:2)
SQL Server如何存储日期与它们如何格式化为用户无关。在向用户显示数据时,您几乎可以根据需要格式化日期。日期实际存储在数据库中的方式不受此影响。
有关如何向用户显示日期的信息,请查看以下T-SQL函数:
Convert
Cast
Format (SQL 2012)
举个例子:
Print FORMAT(GetDate(),'G','en-us')
将产生:
9/3/2014 8:15:49 AM
但基础数据类型没有改变。
答案 1 :(得分:0)
如上所述,显示日期的方式及其存储方式是两回事。但是,此代码将在transact sql中为您提供所需的显示。
declare @d [datetime] = N'2014-09-03 07:24:16:23'
, @s [sysname]
, @target [sysname];
set @s = convert ([sysname], @d, 113);
set @target = convert ([sysname], @d, 101) + N' '
+ substring(@s, charindex(N':', @s, 7) - 2, 8);
select @target, convert([datetime], @target);