2017-08-17 79 views
1

我的数据库中有一列需要使用SQL Server函数从日期时间转换为日期数据类型。我无法弄清楚如何得到正确的语法。我可以得到一些关于语法的帮助,所以IntelliSense会停止对我大喊大叫,我可以让查询运行?使用函数将日期时间转换为日期

CREATE FUNCTION fChangeDateFormat (@date01 date) 
RETURNS DATE 
AS 

RETURN(
SELECT 
    Convert(DateTime, OrderDate, 101) 
FROM 
    Orders 
WHERE 
    OrderDate = @date01 
) 
+0

'CONVERT'已经是一个函数了,为什么要把它包装在另一个中呢?您是否希望永久更改表列的数据类型,或者为了报告目的而即时进行转换? –

+0

我需要永久更改列的数据类型。你是什​​么意思的动态? – ShreddedSaber

+0

您不需要使用函数来更改列,我只需添加一个新列,然后运行UPDATE查询以填充它,然后删除旧列。看起来你似乎过于复杂的任务。 –

回答

1

您可以使用转换为,

select CONVERT(date,@date01,101) as dd from Orders 

如果你使用SQL Server 2012 +使用的格式, 'd' 是让短日期格式。

SELECT FORMAT(@date01,'d','en-US') as dd from Orders 
相关问题