【问题标题】:Convert datetime to specific format in SQL Server在 SQL Server 中将日期时间转换为特定格式
【发布时间】:2019-11-02 23:43:52
【问题描述】:

如何将日期时间转换为这种格式:2019/06/17 18:00:00.123

我同时使用select convert(varchar, getdate(), 111)select convert(varchar, getdate(), 108),但我只得到2019/06/17 18:00:00

我找不到获得所需格式的组合。有什么办法得到吗?

【问题讨论】:

    标签: sql sql-server datetime formatdatetime


    【解决方案1】:

    您可以使用FORMAT 以指定格式返回DATETIME(假设您使用SQL-Server 并希望返回string 类型)。

    DECLARE @example DATETIME = GETDATE();
    SELECT FORMAT(@example, 'yyyy/MM/dd HH:mm:ss.fff');
    

    【讨论】:

    • 这仅适用于 SQL Server 2012 及更高版本。见here
    • @PeterSmith 。 . .鉴于在三周内,SQL Server 2012 将是最旧的受支持版本,这并不完全是一个限制。
    • @GordonLinoff 同意,但仍有大量 2008R2 服务器仍在使用中。
    【解决方案2】:

    使用 datetime2 数据类型并将 getdate 转换为 datetime2(3) 以实现 3 位精度

    select cast( getdate() as DATETIME2(3))
    

    【讨论】:

    • 感谢您的回答。我对此很陌生,所以我可以向您寻求帮助吗?我应该把这个 cast 命令放在这段代码的什么地方? [T1]=convert(nvarchar,convert(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, T1), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) ,111)+' '+convert(nvarchar, convert(datetime, SWITCHOFFSET(CONVERT( datetimeoffset, T1), DATENAME(TzOffset, SYSDATETIMEOFFSET()))),108)
    • @DušanRanduška 在您的问题中发帖
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多