您好我有一个SQL查询:
select DateDiff(d,StartDate, EndDate) DaysEmployed from ClientDayActivity
我希望这会变成这样:
EmployDays = CASE WHEN NOT end_date IS NULL THEN
DATEDIFF(d,start_date, end_date) ELSE
DATEDIFF(d,start_date, CONVERT(DATETIME, '" & Cstr(strEndDate) & "', 102)) END
我从旧应用程序中选择了此查询,我必须根据我的数据库和应用程序使用它。我捡起来了
这个来自asp代码的查询,他们有一串查询。我不知道这是什么:
'" & Cstr(strEndDate) & "'
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
'" & Cstr(strEndDate) & "'
这看起来像是来自VB的动态SQL语句。
strEndDate是某个变量的名称,该变量可能包含一个日期,然后使用Cstr
将其转换为字符串,然后添加到SQL语句中。
如果你想在存储过程中做类似的事情,你可能会想要
EmployDays = CASE WHEN NOT end_date IS NULL THEN
DATEDIFF(d,start_date, end_date) ELSE
DATEDIFF(d,start_date, @end_date) END
其中@end_date
是参数。或者,您可以使用GetDate()
,这将使用今天的日期,这将在案例陈述逻辑和列别名
以下是选择
中的示例SELECT
CASE
WHEN NOT end_date IS NULL THEN
DATEDIFF(d,start_date, end_date)
ELSE
DATEDIFF(d,start_date, @end_date)
END as EmployDays,
some_other_field
FROM
sometable