Den*_*nis 2 sql sql-server sql-server-2005
有没有办法可以在表中存储DATEPART参数,以便稍后我可以将它作为变量传递给DATEADD(...).像这样的东西
CREATE TABLE abc
(
Freq <some DATEPART type>,
FromDate DATE,
NumOfDays INT
)
Run Code Online (Sandbox Code Playgroud)
然后在我看来
CREATE VIEW abc
AS
SELECT DATEADD(Freq, NumOfDays, FromDate)
FROM abc
Run Code Online (Sandbox Code Playgroud)
(是的,我知道我可以从DYNAMIC SQL执行此操作,但是视图不采用动态sql,我想避免使用动态sql).
如果您不想使用动态SQL,请不要.
由于DatePart数量有限,您可以使用如下CASE语句:
SELECT CASE
WHEN Freq = 'Year' THEN DATEADD(Year, NumOfDays, Fromdate)
WHEN Freq = 'Day' THEN DATEADD(Day, NumOfDays, FromDate)
... END as 'MyField'
FROM Abc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
307 次 |
| 最近记录: |