选择今天的日期作为默认日期

时间:2018-01-10 06:14:06

标签: sql sql-server

我有一个问题,我不确定是否可能,但我要说我有一张员工表,日期和出勤状态表,即"现在" /"不存在"

我可以获取所有日期或我在查询中指定的日期的所有员工的状态。 我的问题是,默认情况下可以获取今天的日期,因此每当我运行查询时,它都会为我提供今天的数据行而不是数据库中的所有记录。我想使用默认设置,以便我不必每天更改日期。 提前致谢

3 个答案:

答案 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