Функция Format () не работает? - PullRequest
12 голосов
/ 24 июня 2011

Я пытаюсь выполнить следующую встроенную функцию в SQL, но выдает ошибку, что эта функция не существует

мой запрос:

select EmpId, EmpName, format(EmpJoinDate, "YYYY-DD-MM") as date from Employee

Ошибка, которую я получаю:

'format' is not a recognized built-in function name

В чем может быть проблема, или что я делаю не так?

Спасибо!

Ответы [ 4 ]

10 голосов
/ 24 июня 2011

Вместо этого используйте функцию Convert.Пример:

select convert(varchar(5), GETDATE(), 126) + convert(varchar(5), GETDATE(), 105)
5 голосов
/ 24 июня 2011

Это потому, что FORMAT() не является встроенной функцией в SQL 2005. Вам необходимо использовать функцию CONVERT():

SELECT
    EmpId,
    EmpName,
    REPLACE(CONVERT(VARCHAR(10), EmpJoinDate, 102), '.', '-') AS date
FROM
    Employee

Несколько предостережений, хотя ... "дата"Я верю, что это зарезервированное слово, поэтому я бы не советовал использовать его даже в качестве псевдонима столбца.Также вышесказанное фактически дает YYYY-MM-DD.YYYY-DD-MM довольно редкий, я считаю.Если вы действительно этого хотите, вам нужно либо объединить вещи вместе с функциями DATEPART и CAST, либо объединить вещи, используя SUBSTRING с CONVERT.

.и вы сможете найти все поддерживаемые форматы.Тот, который я использовал выше (102), предназначен для YYYY.MM.DD, поэтому я сделал замену, чтобы вместо этого дать дефисы.

2 голосов
/ 31 октября 2011

Согласно документации MSDN, http://msdn.microsoft.com/en-us/library/hh213505(SQL.110).aspx, это встроенная функция.Я предполагаю, что это не было осуществлено.

0 голосов
/ 08 февраля 2016

Другие ответы будут работать, но используйте некоторые хакерские замены строк и конкататы.Хотя вы можете установить date_style в 23, чтобы конвертировать прямо в формат "ГГГГ-ДД-ММ":

convert(varchar(10), EmpJoinDate, 23)

Полный список форматов, который я хотел бы сослаться на этот удивительный SO-ответ:https://stackoverflow.com/a/19537658/2140636

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...