/ / Wybierz dzisiejszą datę jako domyślną - sql-server

Wybierz dzisiejszą datę jako domyślną - sql-server

Mam pytanie, na które nie jestem pewny, jeśli to możliwe lub nie, ale powiedzmy, że mam tabelę z Employeeid, Date i AttendanceStatus, tj. "Present" / "Absent".

Mogę uzyskać status wszystkich pracowników dla wszystkichdaty lub daty określone w zapytaniu. Moje pytanie jest takie, że domyślnie można uzyskać datę dzisiejszą, więc za każdym razem, gdy uruchomię zapytanie, otrzymuję wiersze danych dla dzisiejszych zamiast wszystkich rekordów z bazy danych. Chcę używać domyślnych ustawień, aby nie musieć codziennie zmieniać daty. Z góry dziękuję

Odpowiedzi:

2 dla odpowiedzi № 1

Spróbuj tego:

select * from TABLE_NAME where
where cast([Date] as date) = cast(getdate() as date)

Ponadto, jak już wspomniano, można utworzyć widok:

create view V_TABLE_NAME as
select * from TABLE_NAME where
where cast([Date] as date) = cast(getdate() as date)

1 dla odpowiedzi nr 2

Możesz zastosować klauzulę where dla bieżącego dnia;

select * from table where
Date > cast(getdate() as date) and
Date < DATEADD(day,1,cast(getdate() as date))

Lub możesz utworzyć widok;

create view v_table
as
select * from table where
Date > cast(getdate() as date) and
Date < dateadd(day,1,cast(getdate() as date))

Następnie zapytanie;

select * from v_table

0 dla odpowiedzi № 3

Wypróbuj tę logikę

DECLARE @MyDate DATE
SELECT
*
FROM YourTable
WHERE DateField = ISNULL(@MyDate,GETDATE())

Tutaj, jeśli nie przekazujesz żadnych wartości w parametrze @MyDate, to Bieżąca data będzie domyślna. Można również użyć poniższych

DECLARE @MyDate DATE
SELECT
*
FROM YourTable
WHERE
DateField = CASE WHEN ISDATE(@MyDate) = 1 THEN @MyDate ELSE GETDATE() END