我有一个问题,我不确定是否可能,但我要说我有一张员工表,日期和出勤状态表,即"现在" /"不存在"
我可以获取所有日期或我在查询中指定的日期的所有员工的状态。 我的问题是,默认情况下可以获取今天的日期,因此每当我运行查询时,它都会为我提供今天的数据行而不是数据库中的所有记录。我想使用默认设置,以便我不必每天更改日期。 提前致谢
答案 0 :(得分:2)
试试这个:
select * from TABLE_NAME where
where cast([Date] as date) = cast(getdate() as date)
另外,如前所述,您可以创建一个视图:
create view V_TABLE_NAME as
select * from TABLE_NAME where
where cast([Date] as date) = cast(getdate() as date)
答案 1 :(得分:1)
您可以在当天申请where子句;
select * from table where
Date > cast(getdate() as date) and
Date < DATEADD(day,1,cast(getdate() as date))
或者你可以创建一个视图;
create view v_table
as
select * from table where
Date > cast(getdate() as date) and
Date < dateadd(day,1,cast(getdate() as date))
然后查询;
select * from v_table
答案 2 :(得分:0)
尝试此逻辑
DECLARE @MyDate DATE
SELECT
*
FROM YourTable
WHERE DateField = ISNULL(@MyDate,GETDATE())
此处,如果您未在参数@MyDate中传递任何值,则会将“当前日期”设置为“默认”。以下也可以使用
DECLARE @MyDate DATE
SELECT
*
FROM YourTable
WHERE
DateField = CASE WHEN ISDATE(@MyDate) = 1 THEN @MyDate ELSE GETDATE() END