MySQL 如何将自定义日期插入MySQL时间戳字段?
MySQL中的时间戳字段是表示日期和时间的数值类型,通常用于存储某个事件发生的精确时间。在插入数据时,可以使用系统的当前时间作为默认值,也可以使用自定义日期。下面介绍如何将自定义日期插入MySQL时间戳字段。
阅读更多:MySQL 教程
方法一:使用字符串形式插入
可以将自定义日期转换为字符串形式,然后将字符串插入到时间戳字段中,MySQL会自动将字符串转换为时间戳。
示例代码(使用PHP):
$date = '2021-12-31 23:59:59';
$sql = "INSERT INTO mytable (id, timestamp_field) VALUES (1, '$date')";
示例代码(使用Python):
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO mytable (id, timestamp_field) VALUES (%s, %s)"
val = (1, '2021-12-31 23:59:59')
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
方法二:使用UNIX_TIMESTAMP函数插入
UNIX_TIMESTAMP函数可以将日期时间字符串转换为时间戳,并将结果插入到时间戳字段中。
示例代码(使用PHP):
$date = '2021-12-31 23:59:59';
$sql = "INSERT INTO mytable (id, timestamp_field) VALUES (1, UNIX_TIMESTAMP('$date'))";
示例代码(使用Python):
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO mytable (id, timestamp_field) VALUES (%s, UNIX_TIMESTAMP(%s))"
val = (1, '2021-12-31 23:59:59')
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
方法三:使用STR_TO_DATE函数插入
STR_TO_DATE函数可以将日期字符串按照指定格式转换为日期时间对象,并将日期时间对象转换为时间戳,然后将结果插入到时间戳字段中。
示例代码(使用PHP):
$date = '31-12-2021 23:59:59';
$sql = "INSERT INTO mytable (id, timestamp_field) VALUES (1, UNIX_TIMESTAMP(STR_TO_DATE('$date', '%d-%m-%Y %H:%i:%s')))";
示例代码(使用Python):
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO mytable (id, timestamp_field) VALUES (%s, UNIX_TIMESTAMP(STR_TO_DATE(%s, '%%d-%%m-%%Y %%H:%%i:%%s')))"
val = (1, '31-12-2021 23:59:59')
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
需要注意的是,在使用STR_TO_DATE函数时,日期字符串的格式必须和格式化字符串中指定的格式一致。
结论
以上就是如何将自定义日期插入MySQL时间戳字段的三种方法。使用字符串插入法比较简单,但需要进行日期格式的转换;使用UNIX_TIMESTAMP函数和STR_TO_DATE函数插入法则可以直接将日期字符串转换为时间戳,但需要注意函数的使用方式和日期字符串的格式。根据实际情况,选择合适的方法即可。
极客笔记