SQL Server将日期转换为MM / DD / YYYY HH:MM:SS作为DATETIME格式

时间:2014-09-03 12:10:27

标签: sql sql-server database tsql

我希望将SQL Server日期格式(YYYY-MM-DD HH:MM:SS:MS)转换为US格式(MM / DD / YYYY HH:MM:SS),但数据类型应保持日期时间。

更多细节。抱歉,这可能会有所帮助。我有一个使用SQL Server 2008中的视图的第三方应用程序。但是,如果数据类型是日期或日期时间,这个应用程序将只允许我过滤日期,这就是使用convert和varchar在这种情况下不起作用的原因。

2 个答案:

答案 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);