Questo tutorial coprirà le basi del lavoro con il tipo di dati Timestamp in MySQL.
Il tipo di dati Timestamp consente di archiviare i valori della data e del tempo nel formato di Timestamp come Yyyy-MM-DD HH: MM: SS.
Il valore di un tipo di dati Timestamp in MySQL varia dal 1970-01-01 00:00:01 al 2038-01-19 03:14:07 in UTC.
Quando si memorizza un valore Timestamp, MySQL convertirà l'ora corrente in UTC e lo memorizzerà nella tabella di destinazione. MySQL convertirà il valore da UTC all'ora corrente durante il recupero. È bene ricordare che questa funzione si applica solo al tipo di dati Timestamp.
Pertanto, poiché il fuso orario può essere impostato su una determinata sessione, il mio SQL consente di recuperare lo stesso valore memorizzato finché il fuso orario rimane costante.
Esempio di fuso orario mysql
Copriamo un esempio di come lavorare con il tipo di dati Timestamp in MySQL. Considera la tabella seguente con una colonna Timestamp.
creare database tempdb;
Usa tempdb;
Crea campione di tabella (
id int auto_increment chiave primaria,
T timestamp
);
set time_zone = '+03:00';
La query sopra crea un database di esempio e una tabella con una colonna Timestamp. Abbiamo anche impostato il fuso orario per la sessione usando il parametro time_zone.
Possiamo quindi inserire i valori della data e del tempo nella colonna come mostrato nella query seguente:
inserire nel campione (t)
valori ('2022-10-10 23:45:23'),
("2020-12-10 13:43:32"),
("1990-10-10 16:23:32");
Possiamo quindi selezionare i valori del timestamp dalla tabella come mostrato:
Seleziona * dal campione;
Risultato:
Dimostrare l'uso del fuso orario nel timestamp
Come accennato, se il fuso orario è costante, possiamo ottenere lo stesso valore che abbiamo salvato nella tabella, come dimostrato sopra.
Vediamo quali valori otteniamo se cambiamo il valore del fuso orario:
set time_zone = '-7: 00';
Seleziona * dal campione;
Se eseguiamo l'istruzione sopra, dovremmo ottenere una tabella con il valore come mostrato:
Si noti che otteniamo valori diversi da quello che abbiamo salvato. Ciò si verifica a causa del cambiamento nel fuso orario.
Utilizzo dell'inizializzazione automatica utilizzando il tipo di dati Timestamp
Possiamo inizializzare automaticamente una data colonna impostando il vincolo predefinito su Current_Timestamp.
In tal caso, MySQL inserirà il valore del timestamp corrente a una determinata riga, come mostrato nell'esempio seguente:
Crea campione di tabella (
id int auto_increment chiave primaria,
t Timestamp impostazione corretta_timestamp
);
Possiamo quindi inserire valori nella tabella come mostrato:
inserire nel campione (ID)
valori (1), (2), (3);
Come puoi notare, non prevediamo la colonna T. Questo dovrebbe costringere Mysql a utilizzare il valore predefinito come mostrato:
Seleziona * dal campione;
Produzione:
Come puoi vedere, tutte le righe condividono lo stesso valore del timestamp che indica il tempo di inserimento. Questa funzione è definita inizializzazione automatica.
Conclusione
In questo esempio, abbiamo discusso dei fondamenti del lavoro con il tipo di dati Timestamp in MySQL.