SQL Server返回日期时间,如2015-12-07T09:20:17.097



使用ASP.NET API我使用GetDate()SQL Server函数插入了DateTime,当我选择回数据时,它给出了类似2015-12-07T09:20:17.097的格式,而且插入记录时时间与我的当前时间不符。

如何根据本地时区获取/插入时间

您有两种选择:

  1. 使用SQL选择查询日期格式化程序格式化数据参考:http://www.w3schools.com/sql/func_convert.asp
  2. 使用ASP.net c#/Vb.net,您可以使用Convert.ToDateTime(value).ToString("将格式放在此处");参考:https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx

这里有两个函数可以帮助您。第一个是SYSDATETIMEOFFSET
这将从服务器返回日期、时间和时区。如果我们将其与SWITCHOFFSET相结合,我们可以返回另一个时区的日期和时间。

下面是一个返回美国东部时间(-05:00)的示例:

SELECT
    SWITCHOFFSET(SYSDATETIMEOFFSET(), '-05:00') AS EasternTime

时区参数为夏时制。

下一个示例演示了时区参数设置时区,而不仅仅是添加/减去经过的小时和分钟:

DECLARE @GMT            DATETIMEOFFSET = '2015-12-17 09:00:00.0000000 +00:00'
DECLARE @GMT_Plus1    DATETIMEOFFSET = '2015-12-17 10:00:00.0000000 +01:00'

/* Both 9am in timezone +0 (London) and 10am in +1 (Paris)
 * will return 4am Eastern time (timezone -5)
 */  
SELECT
    SWITCHOFFSET(@GMT, '-05:00')        AS EasternTime1,
    SWITCHOFFSET(@GMT_Plus1, '-05:00')    AS EasternTime2
;

这两个函数都需要SQL Server 2008或更高版本。有关SQL Server日期和时间功能的详细信息,请参阅MSDN。

相关内容

最新更新