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

时间:2015-12-10 09:24:02

标签: sql sql-server web-services

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

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

2 个答案:

答案 0 :(得分:0)

您有两种选择:

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

答案 1 :(得分:0)

这里有两个功能可以帮到你。首先是SYSDATETIMEOFFSET 这将从服务器返回日期,时间和时区。如果我们将其与SWITCHOFFSET结合使用,我们可以返回另一个时区的日期和时间。

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

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

时区参数是夏令时的awear。

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

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