Powiel możliwe:
Get just the Date from grouping in select from DateTime column in SQL ServerPobierz tylko data część DateTime w mssql
Jak mogę uzyskać tylko data część DateTime? Szukam czegoś podobnego do funkcji year(), ale przez całą datę.
Powiel możliwe:
Get just the Date from grouping in select from DateTime column in SQL ServerPobierz tylko data część DateTime w mssql
Jak mogę uzyskać tylko data część DateTime? Szukam czegoś podobnego do funkcji year(), ale przez całą datę.
Rozwiązanie chcesz to jeden zaproponowany tutaj:
cast(floor(cast(@dateVariable as float)) as datetime)
Jest definicja funkcji w link, który pozwoli skonsolidować:
https://stackoverflow.com/a/542802/50776
Zasadniczo, można to zrobić Funkcjonalność i zadzwoń w dowolne miejsce (nie musisz tego pamiętać), jeśli chcesz.
Tutaj jest lepszą odpowiedzią https://stackoverflow.com/questions/113045/how-to-return-only-the-date-from-a-sql-server-datetime-datatype – Adeem
Innym sposobem jest ładne:
DATEADD(dd, 0, DATEDIFF(dd, 0, [YourDate]))
który dostaje liczbę dni od dnia 0 do YourDate i dodaje go do dnia 0 ponownie ustawić linię bazową. Ta metoda (lub jej "pochodne") może być używana do wielu innych manipulacji datami.
Edycja - inny termin obliczenia:
pierwszy dzień miesiąca:
DATEADD(mm, DATEDIFF(mm, 0, getdate()), 0)
First Day of the Year:
DATEADD(yy, DATEDIFF(yy, 0, getdate()), 0)
Pierwszy dzień kwartału:
DATEADD(qq, DATEDIFF(qq, 0, getdate()), 0)
Last Da Y z poprzedniego miesiąca:
DATEADD(ms, -3, DATEADD(mm, DATEDIFF(mm, 0, getdate()), 0))
Ostatni dzień bieżącego miesiąca:
DATEADD(ms, -3, DATEADD(mm, DATEDIFF(m, 0, getdate()) + 1, 0))
Ostatni dzień bieżącego roku:
DATEADD(ms, -3, DATEADD(yy, DATEDIFF(yy, 0, getdate()) + 1, 0))
pierwszy poniedziałek miesiąca:
DATEADD(wk, DATEDIFF(wk, 0, DATEADD(dd, 6 - DATEPART(day, getdate()), getdate())), 0)
Edytuj: To prawda, Joe, nie dodaje go do DAY 0, dodaje 0 (dni) do liczby dni, które w zasadzie po prostu konwertują ją z powrotem do datetime.
Dateadd (interwał, liczba, data). .. więc zasadniczo dodajesz 0 do tego. .. cast (datediff (dd, 0, [twoja data]) jako datetime) – dotjoe
To nie może być tak śliskie jak one-liner, ale używam go do wykonywania datę manipulacji głównie na raportach:
DECLARE @Date datetime
SET @Date = GETDATE()
-- Set all time components to zero
SET @Date = DATEADD(ms, -DATEPART(ms, @Date), @Date) -- milliseconds = 0
SET @Date = DATEADD(ss, -DATEPART(ss, @Date), @Date) -- seconds = 0
SET @Date = DATEADD(mi, -DATEPART(mi, @Date), @Date) -- minutes = 0
SET @Date = DATEADD(hh, -DATEPART(hh, @Date), @Date) -- hours = 0
-- Extra manipulation for month and year
SET @Date = DATEADD(dd, -DATEPART(dd, @Date) + 1, @Date) -- day = 1
SET @Date = DATEADD(mm, -DATEPART(mm, @Date) + 1, @Date) -- month = 1
używam tego, aby co godzinę, codziennie, co miesiąc i daty roczne używany do raportowania i wskaźników wydajności itp.
Możemy użyć tej metody:
CONVERT(VARCHAR(10), GETDATE(), 120)
Ostatni parametr zmienia format tylko, aby uzyskać czas lub datę w określonych formatach.
To może pomóc także:
SELECT convert(varchar, getdate(), 100) -- mon dd yyyy hh:mmAM (or PM)
-- Oct 2 2008 11:01AM
SELECT convert(varchar, getdate(), 101) -- mm/dd/yyyy - 10/02/2008
SELECT convert(varchar, getdate(), 102) -- yyyy.mm.dd – 2008.10.02
SELECT convert(varchar, getdate(), 103) -- dd/mm/yyyy
SELECT convert(varchar, getdate(), 104) -- dd.mm.yyyy
SELECT convert(varchar, getdate(), 105) -- dd-mm-yyyy
SELECT convert(varchar, getdate(), 106) -- dd mon yyyy
SELECT convert(varchar, getdate(), 107) -- mon dd, yyyy
SELECT convert(varchar, getdate(), 108) -- hh:mm:ss
SELECT convert(varchar, getdate(), 109) -- mon dd yyyy hh:mm:ss:mmmAM (or PM)
-- Oct 2 2008 11:02:44:013AM
SELECT convert(varchar, getdate(), 110) -- mm-dd-yyyy
SELECT convert(varchar, getdate(), 111) -- yyyy/mm/dd
SELECT convert(varchar, getdate(), 112) -- yyyymmdd
SELECT convert(varchar, getdate(), 113) -- dd mon yyyy hh:mm:ss:mmm
-- 02 Oct 2008 11:02:07:577
SELECT convert(varchar, getdate(), 114) -- hh:mm:ss:mmm(24h)
SELECT convert(varchar, getdate(), 120) -- yyyy-mm-dd hh:mm:ss(24h)
SELECT convert(varchar, getdate(), 121) -- yyyy-mm-dd hh:mm:ss.mmm
SELECT convert(varchar, getdate(), 126) -- yyyy-mm-ddThh:mm:ss.mmm
-- 2008-10-02T10:52:47.513
-- SQL create different date styles with t-sql string functions
SELECT replace(convert(varchar, getdate(), 111), '/', ' ') -- yyyy mm dd
SELECT convert(varchar(7), getdate(), 126) -- yyyy-mm
SELECT right(convert(varchar, getdate(), 106), 8) -- mon yyyy
Patrz także: http://stackoverflow.com/questions/133081/most-efficient-way-in-ms-sql-to-get -date-from-datetime i http://stackoverflow.com/questions/2775/whats-the-best-way-to-remove-the-time-portion-ofa-a-datetime-value-sql-server – Kristen