【问题标题】:SQL Syntax Error When Adding Convert Function添加转换函数时的 SQL 语法错误
【发布时间】:2019-05-19 13:17:48
【问题描述】:

这行得通

SELECT 
    LEFT(DATENAME(DAY, GETDATE()), 3) + '-' +
    LEFT(DATENAME(MONTH, GETDATE()), 3) + ' ' + '-' +
    RIGHT('00' + CAST(YEAR(GETDATE()) AS VARCHAR), 2)

这也有效

SELECT CONVERT(TIME(0), GETDATE())

但是当我将两者结合起来时,我得到一个错误

SELECT 
    LEFT(DATENAME(DAY, GETDATE()), 3) + '-' +
    LEFT(DATENAME(MONTH, GETDATE()), 3) + ' ' + '-' +
    RIGHT('00' + CAST(YEAR(GETDATE()) AS VARCHAR), 2) + ' ' 
    CONVERT(TIME(0), GETDATE())

【问题讨论】:

    标签: sql sql-server visual-studio visual-studio-2010


    【解决方案1】:

    这不能回答您的问题,但您的第一个查询过于复杂。我不明白日期格式,但无论你需要什么,这是一个更简单的方法:

    SELECT DATENAME(DAY, GETDATE()) + '-' +
           LEFT(DATENAME(MONTH, GETDATE()), 3) + ' -' +
           RIGHT(DATENAME(YEAR, GETDATE()), 2)
    

    注意事项:

    • DAY 组件永远不会超过 2 个字符,因此 LEFT(. . . , 3) 是不必要的。
    • ' ' + '-' 可以简化为 ' -'
    • 您也可以在年份使用DATENAME()

    【讨论】:

    • 你让它变得如此简单。感谢您的简短回答。
    【解决方案2】:

    您可以在下面尝试 - 您需要将 + 运算符和 cast 添加到 varchar()

    SELECT LEFT(DATENAME(Day,GETDATE()),3) + '-' +
    LEFT(DATENAME(MONTH,GETDATE()),3) + ' ' + '-' +
    RIGHT('00' + CAST(YEAR(GETDATE()) AS VARCHAR),2) + ' ' +
    cast(convert(time(0),getDate()) as varchar(10))
    

    【讨论】:

    • 谢谢您,它工作正常,我会将您的回复标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 2013-10-21
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多