mysql datetime为空不显示_将null和格式不正确的datetime值导入datetime列MySQL
我正在使用带有Sequel Pro界面的MySQL数据库,并且是SQL新手.我正在尝试从csv文件导入数据,我导入的其中一个列是datetime类型.但是,我收到数据的格式是mm / dd / yy hh:mm AM / PM或null.最初,我将列的类型修改为varchar以避免问题,但现在我需要对数据执行一些日期函数,除非列具有日期时间类型和格式,否则无法完成,所以我需要一种方法将传入的数据转换为正确的日期时间格式.
此外,不了解SQL或数据库的人将会运行import语句,因此最好让他们只需单击文件 – 导入,而不必在mysql命令行中输入任何复杂的内容.此外,在运行查询后,我需要以相同的格式导出数据(mm / dd / yy hh:mm AM / PM或null).
以下是该列的一些示例值:
Completion Time
null
6/16/14 10:33 AM
null
null
6/16/14 13:03 PM
6/17/14 13:53 PM
6/18/14 14:38 PM
6/18/14 14:52 PM
6/19/14 13:13 PM
6/18/14 18:56 PM
6/18/14 19:02 PM
null
我收集的一个可能简单的解决方案可能不是几个小时的谷歌搜索,这将是保持列类型为varchar然后以某种方式提取输入数据的mm / dd / yy部分,转换到正确的MySQL日期格式,然后执行我的日期功能.
无论如何,任何帮助将不胜感激.
解决方法:
使用MySQL的日期和时间函数并不是很困难. STR_TO_DATE执行导入所需的操作:
the format I receive the data in is mm/dd/yy hh:mm AM/PM or null.
你得到你的DATETIME值
STR_TO_DATE(yourValue, '%m/%d/%y %h:%i %p')
您可以在函数DATE_FORMAT的描述中找到STR_TO_DATE的说明符
对于导出,您使用已提到的函数DATE_FORMAT执行相反的操作,其格式字符串完全相同:
SELECT DATE_FORMAT(your_datetime_col, '%m/%d/%y %h:%i %p')
看看这个Demo
您可以在INSERT语句中执行转换,如下所示:
INSERT INTO example (date_time) VALUES
(STR_TO_DATE('09/26/14 07:30 AM', '%m/%d/%y %h:%i %p'));
看到它在更新的Demo中工作
使用LOAD DATA INFILE自定义导入
让我们有一个表示例,其中包含两列id和date_time
CREATE TABLE example (
id INT NOT NULL PRIMARY KEY,
date_time DATETIME
);
我们还有一个CSV文件example.csv,其中包含以下数据:
id,date
1,09/26/14 07:30 AM
2,07/23/14 07:30 PM
要使用LOAD DATA INFILE导入此文件,您将使用以下语句:
LOAD DATA INFILE 'path/on/server/to/example.csv'
INTO TABLE example
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES -- because of the column headers in the first line
(id, @var1) -- You've got to map every field of your csv file to a column
-- of your table.
-- You've got to list the names of the columns of your table,
-- not the headers in the csv file.
-- if one field should be ignored, use another variable for this
-- field.
SET date_time = STR_TO_DATE(@var1, '%m/%d/%y %h:%i %p');
如果csv文件中的日期包含指示NULL值的文字字符串“null”,则使用CASE运算符:
date
09/26/14 07:30 AM
null
07/23/14 07:30 PM
然后我们必须使用
LOAD DATA INFILE 'path/on/server/to/example.csv'
INTO TABLE example
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n' -- your line endings
IGNORE 1 LINES -- because of the column headers in the first line
(@var1) -- read all parts of the date in variables
SET completionTime = CASE
WHEN @var1 = 'null' THEN NULL
ELSE STR_TO_DATE(@var1, '%m/%d/%y %h:%i %p')
END;
包含分隔符的字段的问题,在本例中是逗号,您已经解决了用封闭字符包围这些字段(或简单地全部).
但我们真的应该看看你的真实格式.
标签:mysql,datetime,sequelpro
来源: https://codeday.me/bug/20190624/1277930.html
mysql datetime为空不显示_将null和格式不正确的datetime值导入datetime列MySQL相关推荐
- db2 linux 导入数据_「软件资料」-「软件使用」-Linux 导入、导出 MySQL 数据库命令...
一.导出数据库 1.导出完整数据:表结构+数据 Linux 下可以使用 mysqldump 命令来导出数据库,语法格式如下:mysqldump -u用户名 -p 数据库名 > 数据库名.sql ...
- mysql 可重复读 悲观锁_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...
首先说一下数据库事务的四大特性 1 ACID 事务的四大特性是ACID(不是"酸"....) (1) A:原子性(Atomicity) 原子性指的是事务要么完全执行,要么完全不执行 ...
- MySQL与oracle报错显示_Oracle中判断表是否存在再删除表避免报错与MySql和SqlServer的不同...
不同数据库中drop a table if it exists的不同: In MySQL it is pretty easy to drop a table if it exists already. ...
- java返回空集合对象_返回null或空集合更好吗?
这是一个普遍的问题(但是我正在使用C#),最好的方法是什么(最佳实践),对于以集合为返回类型的方法,您是否返回null或空集合? #1楼 我想在这里举例说明. 在这里考虑一个案例. int total ...
- mysql扩展中如何处理结果集_请写出PHP处理结果集的5个函数(使用mysql扩展)_学小易找答案...
[单选题]在MySQL中,选择数据库的命令是( ) [单选题]开启mysqli扩展的配置语句是( ). [单选题]19世纪美国杰出的浪漫主义小说家麦尔维尔的代表作是 [单选题]卤素灯检漏时,发现管子大 ...
- mysql翻译逗号隔开的字典_【求大神】现在有1000个string与一个MYSQL字典,查询这1000个string在MYSQL中的id并输出结果...
1.这是需要查询string的示例(txt文件) vivo X5S L CHE-TL00H G621-TL00 vivo Y51A KIW-AL10 Samsung SM-G9200 XiaoMi M ...
- mysql比较两张表中两个字段值_如何通过SQL找出2个表里值不同的列的方法
以下有两个表,他们的结构完全相同,请通过SQL找出值不同的列. Student_1 NAME AGE SCORE peter 26 100 jack 25 96 daniel 26 48 bark 2 ...
- mysql varchar 非空判断_工资从1万到3万,你还差mysql数据库优化之系列三
查询性能的优化 优化查询分析的步骤: 1.应用查询是否检索超过需要的数据 2.mysql服务器是否在分析超过需要的数据 正确使用索引: 1.like语句操作 一般不使用%或_开头例如: select ...
- mysql explain 为空_车祸现场!我的MySQL千万级数据表选错索引了!
最近在线上环境遇到了一次SQL慢查询引发的数据库故障,影响线上业务.经过排查后,确定原因是:SQL在执行时,MySQL优化器选择了错误的索引(不应该说是"错误",而是选择了实际执行 ...
最新文章
- HTTPS和HTTPS证书
- 领域驱动设计之PHP实现
- python爬boss网站_python之requests爬虫Boss数据
- c语言error ld returned,[Error] ld returned 1的错误
- vue里面v-cloak/v-text/v-html/v-pre的应用
- android 大众点评,Android 大众点评的接入
- 如何将mov格式转换成mp4并且不改变分辨率
- mysql 允许主码重复_数据库主码可以重复吗
- android11更新了什么,一加8安卓11更新了什么 一加8安卓11更新内容
- webGIS学习(二)探究本质,WebGIS前端地图显示之地图比例尺换算原理 发布于 3 年前 作者 lzxue 7473 次浏览 来自 技术 1.没有豆浆机怎么办? 喝豆浆是我们早晨中基本
- 如何在word中插入latex公式和伪代码
- 【c语言】有符号机器数之间怎么比较大小?
- 基于java的格式转换,word 转 pdf、word 转图片、office 格式转换、在线文件预览
- iOS 自动布局和弹性盒子
- python唯美壁纸_Python爬取5K分辨率超清唯美壁纸
- 《云端软件平台》运行机制浅析
- 轻量级网页服务器,Jupyter推出网页轻量级JupyterLab环境
- 电子班牌系统服务器,电子班牌系统解决方案
- No enclosing instance of type Main is accessible. Must qualify the allocation with an enclosing i...
- AR增强现实技术特点、工作原理等简介
热门文章
- Linux 命令(63)—— nm 命令
- Python_study_day_1_while_if
- [Bzoj4817] [Sdoi2017]树点涂色 (LCT神题)
- mysql 索引列为Null的走不走索引及null在统计时的问题
- 几句话实现导航栏透明渐变 – iOS
- DirectX11 学习笔记3 - 创建一个立方体 和 轴
- 网站Banner图切换效果(flash)
- Clojure Web 开发 (一)
- .net mvc html5,带有.NET MVC 3 Razor Editor的HTML5占位符
- java实例属性_Java 静态属性与实例属性的初始化