Sql Ansi per gestire i valori DateTime
-
19-08-2019 - |
Domanda
Sto sviluppando un sistema multi-database.
Voglio la differenza tra due date in pochi secondi.
In SQL Server ho ricevuto:
DATEDIFF (seconda, data stellare, enddate)
In MySql :
TIME_TO_SEC (TimeDiff (data stellare, enddate))
La mia domanda:
Sql Ansi ha funzioni per gestire i valori di DateTime?
ovvero: Esistono funzioni di data e ora generiche per tutti i database?
Soluzione
Secondo SQL: 1999, date1-date0 dovrebbe fornire un valore di tipo INTERVAL, una struttura dalla quale dovresti essere in grado di estrarre ANNO, MESE, GIORNO, ecc.
Non l'ho mai usato e non credo che sia ampiamente supportato (anche se potrei non essere aggiornato). Se stai eseguendo l'aritmetica del tempo nel livello del database e vuoi essere compatibile tra DBMS, la solita soluzione consiste semplicemente nell'utilizzare i timestamp interi (di qualsiasi risoluzione, ma il tempo Unix è comune) e l'aritmetica intera intera semplice che è completamente affidabile -Piattaforma.