【问题标题】:What is wrong in sqlsql有什么问题
【发布时间】:2018-08-30 14:34:26
【问题描述】:

sql有什么问题

CONCAT(title, ', from ', CONVERT(DATETIME,CONVERT(NVARCHAR,startdate,107)), ' to ', CONVERT(DATETIME,CONVERT(NVARCHAR,end_date,107)), ' (', duration , ')')

我想将日期时间更改为 2018 年 9 月 25 日格式

【问题讨论】:

  • 您使用的是什么数据库?你的数据是什么样的?你得到什么结果?你想得到什么结果?
  • 使用 107 的转换意味着 SQL Server - 但那是被转换回日期时间,所以我怀疑这里的“错误”部分是结果的格式错误?

标签: sql-server tsql datetime-conversion


【解决方案1】:

这个问题有点不清楚,我认为您的问题在于您使用 107 格式将日期转换为 nvarchar,这对于您发布的内容是正确的。然后将其转换回日期时间,这会将其恢复为日期的默认设置。

所以我认为您只需将其简化为:

CONCAT(title, ', from ',CONVERT(NVARCHAR,startdate,107), ' to ',CONVERT(NVARCHAR,end_date,107), ' (', duration , ')')

原文:

select convert(datetime,convert(nvarchar,getdate(),107));

返回(这是基于本地设置,所以对于我使用的 SQL Server,它返回这个):

2018-08-30 00:00:00.000

更少的转换代码:

select convert(nvarchar,getdate(),107);

返回:

Aug 30, 2018

【讨论】:

    【解决方案2】:
    SELECT LEFT(DATENAME(MONTH, GETDATE()), 3) + ' ' + cast(datepart(dd, getdate()) as varchar) + ', ' + cast(datepart(yyyy, getdate()) as varchar)
    

    select convert(nvarchar,getdate(),107)
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-11
    • 2016-06-28
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    相关资源
    最近更新 更多