Questo fine settimana è un altro molto lungo in quanto sarà disponibile il inserito dopo il 23:59:59
il 30 giugno.Memorizzazione di un secondo intercalare in SQL Server 2008
Abbiamo un sistema che registra una grande quantità di dati 24 ore su 24 e una delle regole aziendali è che non è possibile registrare due record nello stesso momento, entro un secondo.
Stiamo utilizzando i dati UTC insieme al nuovo tipo di dati datetimeoffset
, ma per quanto posso dire che non ti permetteranno di avere più di 60 secondi in un minuto.
Certo, questo genera un errore:
select datediff(ss, getdate(), '30-jun-2012 23:59:60')
Ma secondo gli dei UTC questo sarà un tempo reale. Gli eventi possono aver luogo allo 23:59:60
ma non abbiamo modo di registrare questo fatto.
23:59:59
più un secondo offset sarà considerato 00:00:00
il 1 ° luglio.
Come posso registrare correttamente che un evento si è verificato a 23:59:60
nel database?
Sembra che le regole aziendali ignorino la realtà. –
Come mai? Gli eventi registrati non possono verificarsi fisicamente più di una volta al secondo. Non ero a conoscenza che stavi lavorando allo stesso progetto. – Widor
Stavo parlando per scherzo, ma la realtà è che il sistema non può memorizzare un timestamp per il secondo intercalare, quindi non è possibile registrare un evento al secondo durante un secondo intercalare. Le regole aziendali richiedono qualcosa che non può essere facilmente raggiunto attraverso i mezzi tradizionali. Resta le regole, fai un'eccezione per i secondi bisestili o scrivi un codice pazzesco. –