我正在使用带有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相关推荐

  1. db2 linux 导入数据_「软件资料」-「软件使用」-Linux 导入、导出 MySQL 数据库命令...

    一.导出数据库 1.导出完整数据:表结构+数据 Linux 下可以使用 mysqldump 命令来导出数据库,语法格式如下:mysqldump -u用户名 -p 数据库名 > 数据库名.sql ...

  2. mysql 可重复读 悲观锁_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...

    首先说一下数据库事务的四大特性 1 ACID 事务的四大特性是ACID(不是"酸"....) (1) A:原子性(Atomicity) 原子性指的是事务要么完全执行,要么完全不执行 ...

  3. 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. ...

  4. java返回空集合对象_返回null或空集合更好吗?

    这是一个普遍的问题(但是我正在使用C#),最好的方法是什么(最佳实践),对于以集合为返回类型的方法,您是否返回null或空集合? #1楼 我想在这里举例说明. 在这里考虑一个案例. int total ...

  5. mysql扩展中如何处理结果集_请写出PHP处理结果集的5个函数(使用mysql扩展)_学小易找答案...

    [单选题]在MySQL中,选择数据库的命令是( ) [单选题]开启mysqli扩展的配置语句是( ). [单选题]19世纪美国杰出的浪漫主义小说家麦尔维尔的代表作是 [单选题]卤素灯检漏时,发现管子大 ...

  6. 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 ...

  7. mysql比较两张表中两个字段值_如何通过SQL找出2个表里值不同的列的方法

    以下有两个表,他们的结构完全相同,请通过SQL找出值不同的列. Student_1 NAME AGE SCORE peter 26 100 jack 25 96 daniel 26 48 bark 2 ...

  8. mysql varchar 非空判断_工资从1万到3万,你还差mysql数据库优化之系列三

    查询性能的优化 优化查询分析的步骤: 1.应用查询是否检索超过需要的数据 2.mysql服务器是否在分析超过需要的数据 正确使用索引: 1.like语句操作 一般不使用%或_开头例如: select ...

  9. mysql explain 为空_车祸现场!我的MySQL千万级数据表选错索引了!

    最近在线上环境遇到了一次SQL慢查询引发的数据库故障,影响线上业务.经过排查后,确定原因是:SQL在执行时,MySQL优化器选择了错误的索引(不应该说是"错误",而是选择了实际执行 ...

最新文章

  1. HTTPS和HTTPS证书
  2. 领域驱动设计之PHP实现
  3. python爬boss网站_python之requests爬虫Boss数据
  4. c语言error ld returned,[Error] ld returned 1的错误
  5. vue里面v-cloak/v-text/v-html/v-pre的应用
  6. android 大众点评,Android 大众点评的接入
  7. 如何将mov格式转换成mp4并且不改变分辨率
  8. mysql 允许主码重复_数据库主码可以重复吗
  9. android11更新了什么,一加8安卓11更新了什么 一加8安卓11更新内容
  10. webGIS学习(二)探究本质,WebGIS前端地图显示之地图比例尺换算原理 发布于 3 年前 作者 lzxue 7473 次浏览 来自 技术 1.没有豆浆机怎么办? 喝豆浆是我们早晨中基本
  11. 如何在word中插入latex公式和伪代码
  12. 【c语言】有符号机器数之间怎么比较大小?
  13. 基于java的格式转换,word 转 pdf、word 转图片、office 格式转换、在线文件预览
  14. iOS 自动布局和弹性盒子
  15. python唯美壁纸_Python爬取5K分辨率超清唯美壁纸
  16. 《云端软件平台》运行机制浅析
  17. 轻量级网页服务器,Jupyter推出网页轻量级JupyterLab环境
  18. 电子班牌系统服务器,电子班牌系统解决方案
  19. No enclosing instance of type Main is accessible. Must qualify the allocation with an enclosing i...
  20. AR增强现实技术特点、工作原理等简介

热门文章

  1. Linux 命令(63)—— nm 命令
  2. Python_study_day_1_while_if
  3. [Bzoj4817] [Sdoi2017]树点涂色 (LCT神题)
  4. mysql 索引列为Null的走不走索引及null在统计时的问题
  5. 几句话实现导航栏透明渐变 – iOS
  6. DirectX11 学习笔记3 - 创建一个立方体 和 轴
  7. 网站Banner图切换效果(flash)
  8. Clojure Web 开发 (一)
  9. .net mvc html5,带有.NET MVC 3 Razor Editor的HTML5占位符
  10. java实例属性_Java 静态属性与实例属性的初始化