添加转换函数时出现SQL语法错误

添加转换函数时出现SQL语法错误,sql,sql-server,visual-studio,visual-studio-2010,Sql,Sql Server,Visual Studio,Visual Studio 2010,这很有效 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

这很有效

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())

您可以在下面进行尝试-您需要添加
+
运算符,还需要将它转换为
varchar()


您可以在下面进行尝试-您需要添加
+
运算符,还需要将它转换为
varchar()


这并不能回答您的问题,但您的第一个查询过于复杂。我不理解日期格式,但不管您需要什么,这是一种更简单的方法:

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

  • DAY
    组件从不超过2个字符,因此不需要
    LEFT(…,3)
  • '+'-'
    可以简化为
    '-'
  • 您也可以在年份上使用
    DATENAME()

    • 这并不能回答您的问题,但您的第一个查询过于复杂。我不理解日期格式,但不管您需要什么,这是一种更简单的方法:

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

      • DAY
        组件从不超过2个字符,因此不需要
        LEFT(…,3)
      • '+'-'
        可以简化为
        '-'
      • 您也可以在年份上使用
        DATENAME()

      谢谢,它很好用,我会把你的回答标记为答案。谢谢,它很好用,我会把你的回答标记为答案。你让它变得如此简单。谢谢你的简短回答。你让它变得如此简单。谢谢你的简短回答。