【问题标题】:SQL Time Format in DD/MM/YYYY hh:mm:ssDD/MM/YYYY 中的 SQL 时间格式 hh:mm:ss
【发布时间】:2014-12-26 01:03:15
【问题描述】:

如何使用 SQL 将时间从原始格式转换为 DD/MM/YYYY hh:mm:ss? 我当前的代码是日期的前一个月。

DECLARE @nDays int = 1
DECLARE @timeVal int = dbo.GetUnixTime(DATEADD(DAY, -@nDays,GETUTCDATE()))
DECLARE @csTimeZone    VARCHAR(256)
DECLARE @duration int

SELECT @csTimeZone = timeZone FROM APP_CommCell WHERE id = 2

SELECT @csTimeZone = TimeZoneStdName FROM SchedTimeZone
WHERE  TimeZoneName = SUBSTRING(@csTimeZone, CHARINDEX(':', @csTimeZone, CHARINDEX(':', @csTimeZone, 0) + 1) + 1, 255)

------------------------------------------------------------------------------------------

SELECT 
    jobid AS 'Job ID', 
    B.servStartDate AS 'Raw Format',
    dbo.UTCToLocalStringTime(dbo.GetDateTime(B.servStartDate),@csTimeZone) AS 'MM/DD/YYYY hh:mm:ss'
FROM JMBkpStats B

这是上面代码的结果。

Job ID  Raw Format  MM/DD/YYYY hh:mm:ss
2599    1410426012  09/11/2014 16:00:12
2611    1410432451  09/11/2014 17:47:31
2639    1410483605  09/12/2014 08:00:05
2724    1410541211  09/13/2014 00:00:11
2738    1410570009  09/13/2014 08:00:09
2750    1410598807  09/13/2014 16:00:07
2797    1410627614  09/14/2014 00:00:14
2808    1410656412  09/14/2014 08:00:12
2820    1410685211  09/14/2014 16:00:11
2847    1410714017  09/15/2014 00:00:17
2866    1410742805  09/15/2014 08:00:05

SELECT @csTimeZone = timeZone FROM APP_CommCell WHERE id = 2 的结果

timeZone
0:-420:(UTC+07:00) Bangkok, Hanoi, Jakarta

SELECT @csTimeZone = TimeZoneStdName FROM SchedTimeZone 的部分结果

timezonename    TimeZoneStdName
(UTC+07:00) Bangkok, Hanoi, Jakarta SE Asia Standard Time

【问题讨论】:

  • 这就是您要找的东西吗? stackoverflow.com/questions/6689962/…
  • 您要转换时间格式吗?]
  • ํ是的,但我也想知道如何同步时区。
  • 我发现我必须使用 dbo.UTCToLocalTime 而不是 dbo.UTCToLocalStringTime 才能使其可转换。非常感谢您的帮助。

标签: sql date datetime timezone format


【解决方案1】:
select convert(varchar(20),GETDATE(),103)+' '+convert(varchar(20),convert(time,getdate()),108)

result:25/10/2018 17:36:03

【讨论】:

    【解决方案2】:

    请试试这个代码: 此查询未经测试如果您遇到任何错误请回复

    SELECT
    B.Job_ID,
    B.Raw_Format,
    CONVERT(VARCHAR(11),b.Raw_Date_Column,106) Raw_Date_Column
    FROM
    (
    SELECT 
        jobid AS 'Job_ID', 
        B.servStartDate AS 'Raw_Format',
        dbo.UTCToLocalStringTime(dbo.GetDateTime(B.servStartDate),@csTimeZone) AS 'Raw_Date_Column'
    FROM JMBkpStats B
    ) AS B
    GROUP BY
        B.Job_ID,
    B.Raw_Format,
    b.Raw_Date_Column
    

    【讨论】:

    • 只要我尝试过 CONVERT(VARCHAR(30),dbo.UTCToLocalStringTime(dbo.GetDateTime(B.servStartDate),@csTimeZone),104) 之类的东西,它仍然无法正常工作(文本仍然存在一样)。
    • 这部分是什么@c‌​sTimeZone
    • 它用于将时间转换为上面声明的本地时区。
    • 对了,我发现dbo.UTCtoLocalStringTime会把时间转换成字符串,dbo.UTCtoLocalTime会把它转换成日期时间。我必须使用后者,以便可以更改格式。我认为这个案子已经解决了。非常感谢!
    猜你喜欢
    • 2017-07-09
    • 2015-10-08
    • 2013-03-21
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2020-08-29
    相关资源
    最近更新 更多