SQLで次の組み込み関数を実行しようとしていますが、この関数が存在しないというエラーが表示されます
私の質問:
select EmpId, EmpName, format(EmpJoinDate, "YYYY-DD-MM") as date from Employee
私が得ているエラー:
'format' is not a recognized built-in function name
何が問題なのか、何が間違っているのでしょうか?
ありがとう!
代わりに Convert
関数を使用してください。例:
select convert(varchar(5), GETDATE(), 126) + convert(varchar(5), GETDATE(), 105)
これは、FORMAT()
がSQL2005の組み込み関数ではないためです。CONVERT()
関数を使用する必要があります。
SELECT
EmpId,
EmpName,
REPLACE(CONVERT(VARCHAR(10), EmpJoinDate, 102), '.', '-') AS date
FROM
Employee
ただし、いくつか注意点があります...「日付」は予約語であると私は信じているので、列のエイリアスとしても使用することはお勧めしません。また、上記は実際にYYYY-MM-DDを与えます。 YYYY-DD-MMはかなり珍しいと思います。本当に必要な場合は、DATEPART
関数とCAST
関数を使用して自分で連結するか、SUBSTRING
とCONVERT
を使用して連結する必要があります。
CONVERT
で検索すると、サポートされているさまざまな形式がすべて見つかるはずです。上で使用したもの(102)はYYYY.MM.DD用であるため、代わりにハイフンを指定するように置き換えました。
MSDNのドキュメントによると、 http://msdn.Microsoft.com/en-us/library/hh213505(SQL.110).aspx 、これは組み込み関数です。実装されていないと思います。
他の答えは機能しますが、いくつかのハッキーな文字列置換と連結を使用します。 date_style
を23に設定して、「YYYY-DD-MM」形式に直接変換することもできます。
convert(varchar(10), EmpJoinDate, 23)
フォーマットの完全なリストについては、この素晴らしいSO-answerを参照したいと思います: https://stackoverflow.com/a/19537658/2140636