Domanda

Duplica di Qual è il modo migliore per rimuovere la parte relativa all'ora di un valore datetime (SQL Server) ?

Ho una colonna che tiene traccia quando le cose vengono creati utilizzando un datetime, ma mi piacerebbe per generare un rapporto che li raggruppa per giorno, quindi ho bisogno di un modo di annullamento dei fuori la componente temporale di una colonna datetime.

Come posso fare questo?

È stato utile?

Soluzione

Un modo è quello di cambiare getdate() al nome della colonna,

select dateadd(dd, datediff(dd, 0, getdate())+0, 0)

Altri suggerimenti

Perché non convertire dritto fino ad oggi:

select convert(date, getdate())

Questa tronca giorni, non giri. Per Giorni rotonde fare questo:

select convert(date, getdate() + 0.5)

Ecco un'altra soluzione:

SELECT CAST( FLOOR( CAST( GETDATE() AS float) ) AS smalldatetime)

Questo è un modo semplice per ottenere la data (come una stringa) da un datetime:

convert(varchar, <the date field/value/etc>, 101)

Ma si noti che l'ordinazione su questo campo sarà alfabetico piuttosto che per data dal momento che è ormai una stringa

Sì. Ci sono molti formati tra cui scegliere quindi mi collego al posto.

http://library.cirr.com /Microsoft/SQL-Server-v7/html/ca-co_1.htm

Se si desidera azzerare il tempo come tuo post implica, si può provare questo:

select cast(convert(varchar, getdate(), 101) as datetime)
declare @CurrentDate datetime
set @CurrentDate = dateadd(dd, datediff(dd, 0, getdate()), 0)

- oppure -

select dateadd(dd, datediff(dd, 0, MyDateColumn), 0) as DateOnly
from tblX

Nelle mie ricerche mi sono imbattuto nel seguente soluzione, le strisce tempo fuori solo il tempo UTC, ma ho trovato interessante, così ho pensato che qualcun altro avrebbe fatto troppo:

FUNCTION TrimDate(@dt AS DATETIME) RETURNS DATETIME
BEGIN
    RETURN CAST(CAST((@dt - 0.500000038580247) AS INT) AS DATETIME) 
END

Vorrei presumere che corre velocemente dal momento che tutto ciò che sta facendo è l'arrotondamento e la colata.

faccio semplicemente cast (GETDATE () come data)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top