無法獲得所需的輸出。問題是:創建一個函式,該函式采用輸入引數型別 datetime 并以 MM/DD/YYYY 格式回傳日期。例如,如果我傳入 '2006-11-21 23:34:05.920',函式的輸出應該是 11/21/2006
我的 SQL 代碼:
CREATE FUNCTION CalculateDate(@InputDate DATETIME)
RETURNS DATE
AS
BEGIN
RETURN CONVERT(varchar(10), @InputDate, 101)
END
SELECT dbo.CalculateDate('2006-11-21 23:34:05.920') AS [MM/DD/YYYY]
但在執行時:

uj5u.com熱心網友回復:
日期沒有格式。2006-11-21, 21.11.2006,11/21/2006都是同一日期(或可以是)的表示。
當你被要求撰寫一個以某種格式回傳日期的函式時,你被要求回傳一個字串。但是,您的函式回傳一個DATE.
在您的函式中發生的事情是您將日期時間轉換為日期字串,然后 DBMS 將其轉換回DATE.
更改REURNS DATE為 `RETURNS VARCHAR(10) 因此:
CREATE FUNCTION CalculateDate(@InputDate DATETIME)
RETURNS VARCHAR(10)
AS
BEGIN
RETURN CONVERT(varchar(10), @InputDate, 101)
END
演示:https : //dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=f5cfdc7e1761ae6e370a6b4f51674813
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322833.html
標籤:sql sql-server 查询语句
上一篇:如果列具有以下值“A、b、c、a、c”,如何僅選擇列示例中不重復的值我只需要選擇b
下一篇:SQL查詢以選擇列中值的特定部分
