Skip to content

Instantly share code, notes, and snippets.

@AnrDaemon
Created March 13, 2018 04:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AnrDaemon/1562e1f712222b80dd2d30c13ad1a83c to your computer and use it in GitHub Desktop.
Save AnrDaemon/1562e1f712222b80dd2d30c13ad1a83c to your computer and use it in GitHub Desktop.
MySQL DateTime vs. TimeStamp vs. TimeZone changes.
mysql> CREATE TABLE `timetest` (`datetime` DATETIME DEFAULT 0, `timestamp` TIMESTAMP DEFAULT 0);
Query OK, 0 rows affected (0,29 sec)
mysql> DESCRIBE `timetest`;
+-----------+-----------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-----------+------+-----+---------------------+-------+
| datetime | datetime | YES | | 0000-00-00 00:00:00 | |
| timestamp | timestamp | NO | | 0000-00-00 00:00:00 | |
+-----------+-----------+------+-----+---------------------+-------+
2 rows in set (0,00 sec)
mysql> INSERT INTO `timetest` VALUES ('2018-03-13 00:00:00', '2018-03-13 00:00:00');
Query OK, 1 row affected (0,01 sec)
mysql> SELECT @@time_zone, `datetime`, UNIX_TIMESTAMP(`datetime`) `dt`, `timestamp`, UNIX_TIMESTAMP(`timestamp`) `ts` FROM `timetest`;
+-------------+---------------------+------------+---------------------+------------+
| @@time_zone | datetime | dt | timestamp | ts |
+-------------+---------------------+------------+---------------------+------------+
| SYSTEM | 2018-03-13 00:00:00 | 1520888400 | 2018-03-13 00:00:00 | 1520888400 |
+-------------+---------------------+------------+---------------------+------------+
1 row in set (0,00 sec)
mysql> SET @@time_zone='Europe/Moscow';
Query OK, 0 rows affected (0,00 sec)
mysql> SELECT @@time_zone, `datetime`, UNIX_TIMESTAMP(`datetime`) `dt`, `timestamp`, UNIX_TIMESTAMP(`timestamp`) `ts` FROM `timetest`;
+---------------+---------------------+------------+---------------------+------------+
| @@time_zone | datetime | dt | timestamp | ts |
+---------------+---------------------+------------+---------------------+------------+
| Europe/Moscow | 2018-03-13 00:00:00 | 1520888400 | 2018-03-13 00:00:00 | 1520888400 |
+---------------+---------------------+------------+---------------------+------------+
1 row in set (0,00 sec)
mysql> SET @@time_zone='America/Belize';
Query OK, 0 rows affected (0,00 sec)
mysql> SELECT @@time_zone, `datetime`, UNIX_TIMESTAMP(`datetime`) `dt`, `timestamp`, UNIX_TIMESTAMP(`timestamp`) `ts` FROM `timetest`;
+----------------+---------------------+------------+---------------------+------------+
| @@time_zone | datetime | dt | timestamp | ts |
+----------------+---------------------+------------+---------------------+------------+
| America/Belize | 2018-03-13 00:00:00 | 1520920800 | 2018-03-12 15:00:00 | 1520888400 |
+----------------+---------------------+------------+---------------------+------------+
1 row in set (0,00 sec)
mysql>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment