Mysql 将日期输入数据库(phpMyAdmin,SQL)
我想在数据库中输入一些日期/时间。所有文件的格式如下:Mysql 将日期输入数据库(phpMyAdmin,SQL),mysql,datetime,Mysql,Datetime,我想在数据库中输入一些日期/时间。所有文件的格式如下: 2015-07-15T05:25:13.292+00:00 我不知道日期的+00:00方面意味着什么,除了00:00之外,似乎没有任何其他值。目前,我有下面的SQL语句来创建表,尽管我想找出格式化表和日期SQL语句的正确方法 当前表创建: CREATE TABLE `bookreservation` (`StartTime` varchar(50) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=l
2015-07-15T05:25:13.292+00:00
我不知道日期的+00:00
方面意味着什么,除了00:00之外,似乎没有任何其他值。目前,我有下面的SQL语句来创建表,尽管我想找出格式化表和日期SQL语句的正确方法
当前表创建:
CREATE TABLE `bookreservation` (`StartTime` varchar(50) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;
插入示例:
INSERT INTO `bookreservation` (`StartTime`) VALUES ('2015-07-15T00:00:00.851+00:00');
什么是合适的
CREATE TABLE
-语句?这将如何将我的INSERT更改为语句?+00:00是时区信息,告诉您给定的时间比UTC早多少或晚多少。第一个坏消息是标准的mysql日期时间格式不包含时区信息。任何datetime值的时区都由会话的(mysql会话)时区设置确定
如果时区数据总是+00:00,那么我就不会太担心它了-除非您的服务器位于不同的时区-我只需切掉时区并将数据存储在datetime字段中
如果时区数据可以不同(我想知道它是否可以不同,不要基于外观进行调用),那么我会将datetime存储在datetime字段中,并为时区设置一个单独的字段。如果您只想显示时区信息,则时区字段可以是字符类型。如果您想根据时区数据进行计算,那么我将使用十进制字段(差异可能不是一个整小时)。看起来
+00:00
是时区偏移量。在您的情况下,如果可以安全地忽略时区偏移,您可以使用STR\u TO\u DATE()
STR_TO_DATE('2015-07-15T05:25:13.292+00:00','%Y-%m-%dT%h:%i:%s.%f+00:00')
您可以在INSERT
语句中使用此选项:
INSERT INTO `bookreservation` (StartTime)
VALUES (STR_TO_DATE('2015-07-15T05:25:13.292+00:00','%Y-%m-%dT%h:%i:%s.%f+00:00'));
这将允许您对列使用DATETIME
类型:
CREATE TABLE `bookreservation` (`StartTime` DATETIME DEFAULT NULL)
我猜+00:00是UTC偏移量。使用这种格式,当我导入包含所有INSERT语句的.sql文件时,表中的所有内容都显示为NULL。我还简单地将+00:00切掉,但仍然得到NULL值。是否包括
stru TO_DATE()
在您的插入中?它们看起来像这样:插入到bookreservation
(开始时间)值(stru TO_DATE('2015-07-15T00:08:01.630','%Y-%m-%dT%H:%i:%s.f');注意,`标记在我的insert语句中是关于图书预订的。只是这里没有显示他们。