Ошибка синтаксиса SQL при добавлении функции преобразования - PullRequest
0 голосов
/ 19 декабря 2018

Это работает

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

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Это не отвечает на ваш вопрос, но ваш первый запрос слишком сложен.Я не понимаю формат даты, но все, что вам нужно, это более простой метод:

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

Примечания:

  • Компонент DAY никогда не превышает 2символов, поэтому LEFT(. . . , 3) не требуется.
  • ' ' + '-' можно упростить до ' -'.
  • Также можно использовать DATENAME() для года.
0 голосов
/ 19 декабря 2018

Вы можете попробовать ниже - вам нужно добавить + оператор, а также 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...