Timestamps in MySQL are generally used to track changes to records, and are often updated every time the record is changed. If you want to store a specific value you should use a datetime field.

If you meant that you want to decide between using a UNIX timestamp or a native MySQL datetime field, go with the native DATETIME format. You can do calculations within MySQL that way ("SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)") and it is simple to change the format of the value to a UNIX timestamp ("SELECT UNIX_TIMESTAMP(my_datetime)") when you query the record if you want to operate on it with PHP.

Also, as of MySQL 8.0.19 the DATETIME supports time zone offsets, so there's even less reason to use TIMESTAMP now.

Answer from blivet on Stack Overflow
🌐
MySQL
dev.mysql.com › doc › en › datetime.html
MySQL :: MySQL 8.4 Reference Manual :: 13.2.2 The DATE, DATETIME, ...
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD hh:mm:ss' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. The TIMESTAMP data type is used for values that contain both date ...
🌐
Educative
educative.io › answers › what-is-timestamp-data-type-in-mysql
What is timestamp data type in MySQL?
Note: The format for the timestamp data type: YYYY-MM-DD HH:MM:SS. It consists of two parts, one is the date and the other is time.
🌐
MySQL Tutorial
mysqltutorial.org › home › mysql basics › mysql timestamp data type
MySQL TIMESTAMP Data Type
December 28, 2023 - The MySQL TIMESTAMP is a temporal data type that holds the combination of date and time.
🌐
GeeksforGeeks
geeksforgeeks.org › mysql › datetime-vs-timestamp-data-type-in-mysql
DATETIME vs TIMESTAMP Data Type in MySQL? - GeeksforGeeks
July 23, 2025 - The TIMESTAMP data type stores date and time information in the format YYYY-MM-DD HH:MM:SS as well, but it is influenced by the timezone settings of the MySQL server.
🌐
MySQL
dev.mysql.com › doc › refman › 8.4 › en › date-and-time-types.html
MySQL :: MySQL 8.4 Reference Manual :: 13.2 Date and Time Data Types
The date and time data types for representing temporal values are DATE, TIME, DATETIME, TIMESTAMP, and YEAR. Each temporal type has a range of valid values, as well as a “zero” value that may be used when you specify an invalid value that MySQL cannot represent.
🌐
EDUCBA
educba.com › home › data science › data science tutorials › mysql tutorial › mysql timestamp
MySQL Timestamp | How Timestamp Data Type Works in MySQL ?
May 15, 2023 - MySQL Timestamp is a time-based MySQL data type containing date and time together. Timestamp supports Universal Time Coordinated(UTC) for MySQL. The format of the timestamp in MySQL is set to 19 characters: YYYY-MM-DD HH:MM:SS.
Address   Unit no. 202, Jay Antariksh Bldg, Makwana Road, Marol, Andheri (East),, 400059, Mumbai
🌐
MySQL
dev.mysql.com › doc › en › date-and-time-functions.html
MySQL :: MySQL 8.4 Reference Manual :: 14.7 Date and Time Functions
The valid range of argument values is the same as for the TIMESTAMP data type: '1970-01-01 00:00:01.000000' UTC to '2038-01-19 03:14:07.999999' UTC for 32-bit platforms; for MySQL running on 64-bit platforms, the valid range of argument values for UNIX_TIMESTAMP() is '1970-01-01 00:00:01.000000' ...
Find elsewhere
🌐
w3resource
w3resource.com › mysql › date-and-time-functions › mysql-timestamp-function.php
MySQL TIMESTAMP() function - w3resource
The supported range of MySQL DATETIME type is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. The TIMESTAMP data type is used to return value which also contains both date and time parts.
🌐
C# Corner
c-sharpcorner.com › article › difference-between-mysql-datetime-and-timestamp-datatypes
Difference Between MySQL DATETIME And TIMESTAMP DataTypes
August 4, 2023 - Both can have fractional seconds parts up to 6-digit microsecond precision. Supported range for DATETIME is '1000-01-01 00:00:00' to '9999-12-31 23:59:59' while for TIMESTAMP, it is '1970-01-01 00:00:01' UTC to '2038-01-09 03:14:07' UTC.
🌐
MySQL
dev.mysql.com › doc › refman › 8.0 › en › datetime.html
MySQL :: MySQL 8.0 Reference Manual :: 13.2.2 The DATE, DATETIME, and TIMESTAMP Types
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD hh:mm:ss' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. The TIMESTAMP data type is used for values that contain both date ...
🌐
MySQL
dev.mysql.com › doc › refman › 9.4 › en › datetime.html
MySQL :: MySQL 9.4 Reference Manual :: 13.2.2 The DATE, DATETIME, and TIMESTAMP Types
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD hh:mm:ss' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. The TIMESTAMP data type is used for values that contain both date ...
🌐
MariaDB
mariadb.com › docs › server › reference › data-types › date-and-time-data-types › timestamp
TIMESTAMP | Server | MariaDB Documentation
MariaDB includes the ... ... MariaDB stores values that use the TIMESTAMP data type as the number of seconds since '1970-01-01 00:00:00' (UTC)....
🌐
MySQL
dev.mysql.com › doc › refman › › 8.0 › en › date-and-time-types.html
MySQL :: MySQL 8.0 Reference Manual :: 13.2 Date and Time Data Types
The date and time data types for representing temporal values are DATE, TIME, DATETIME, TIMESTAMP, and YEAR. Each temporal type has a range of valid values, as well as a “zero” value that may be used when you specify an invalid value that MySQL cannot represent.
🌐
PingCAP
pingcap.com › home › articles › choosing the right mysql time type: datetime vs. timestamp
Choosing the Right MySQL Time Type: Datetime vs. Timestamp
June 17, 2024 - TIMESTAMP uses 4 bytes for storage and has a range from ‘1970-01-01 00:00:01’ UTC to ‘2038-01-19 03:14:07’ UTC, making it suitable for recording events in modern systems. This is one incarnation of the famous Year 2038 Problem. On the other hand, DATETIME requires 5 bytes, covering a wider range from ‘1000-01-01 00:00:00’ to ‘9999-12-31 23:59:59’, offering more flexibility for historical dates. MySQL automatically converts TIMESTAMP values from the current time zone to UTC for storage, and back to the current time zone for retrieval.
🌐
MySQL
dev.mysql.com › doc › refman › 9.1 › en › datetime.html
MySQL :: MySQL 9.1 Reference Manual :: 13.2.2 The DATE, DATETIME, and TIMESTAMP Types
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD hh:mm:ss' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. The TIMESTAMP data type is used for values that contain both date ...
🌐
Reddit
reddit.com › r/mysql › datetime or timestamp
r/mysql on Reddit: DateTime or Timestamp
June 25, 2020 -

Curious as to what everyone uses and why.

We are still in development stage, but currently use DateTime in the db and in our code set the field with UTC. Also the db's timezone is UTC. Should we just change to Timestamp?