在写查询功能的过程中遇到一个这样的问题:按日期范围查询,sql语句是:where dt>=用户选择起始日期&&dt<=用户选择结束日期。数据库中的数据如图1,我选择的测试数据起始时间是2008-01-06结束日期是2009-06-01。期望的结果应该能查出第一条数据。执行sql语句并无错误,但是查询到的结果为空。在网上查找原因,这才知道字符串时间比较大小是按照数字一位位比较的。只有格式对应的字符串才能比较大小。用户选择的时间格式是YYYY-MM-dd而数据库数据的格式是YYYY-M-d,比较日期大小时出错。

图1

这时的解决办法是把数据库中数据的格式更改为YYYY-MM-dd。问题来了。

用户用的数据库是Sqlserver,因开发需要我们公司用的是Sqlite数据库,需要将用户的Sqlserver数据表导入到我们的Sqlite数据库。SqlServer数据库中时间格式是YYYY-MM-dd HH:mm:ss(SqlServer数据库会把插入的datetime类型数据自动规范成YYYY-MM-dd HH:mm:ss类型)导入时我选择的是Navicat Premium工具。导入数据成功,在Sqlite中打开数据表时发现表中数据是YYYY-M-d格式。原因是Sqlite数据库不支持datetime类型的数据,因此数据库中dt是Text类型,不能像Sqlite那样自动规范日期字段格式。如图1:Sqlite中数据是2009-6-1没有补0,测试数据选择的结束日期2009-06-01,比较时6>0,所以数据库第一条数据没有查询出来。

解决办法是:先把SqlServer中的数据导入到Excel中,再把.xls导入到Sqlite数据库。

1.把SqlServer中的数据导入到Excel中。导入之前先新建一个Excel文档,把数据库中的字段名写到第一行作为列头(即把此文档作为数据导入的模板)如图2。导出时使用SqlServer自带的导出数据功能,具体方法不再详细叙述。在选择目标时,Excel文件路径选择建好的Excel文档,首行包含列名称项可选可不选如图3。

                               

图2                                                                                                        图3

注意:如果不在导出之前写上列头建好Excel模板,导出时会报错如图4。如果导出的日期时间仍不会补0,尝试新建Excel模板,选中日期列右键设置单元格格式为文本,然后重复以上步骤。

图4

2.最后将导出成功的Excel文档导入到Sqlite数据库,使用Navicat Premium工具即可做到,使用该工具导入时可选择日期时间类型数据的分隔符是-还是/。具体导入方法不再叙述。

SqlServer数据库表导入SqlLite数据库表保持日期时间类型字段的格式的更多相关文章

  1. Mysql 建表时,日期时间类型选择

    mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  D ...

  2. linux mysql 数据库操作导入导出 数据表导出导入

    linux mysql 数据库操作导入导出 数据表导出导入 1,数据库导入 mysql -uroot -p show databases; create database newdb; use 数据库 ...

  3. 数据库里面DataTime时间类型字段,如果为null时

    tran.TransactionTime = bet.CreationDate.ToString() == "0001/1/1 0:00:00" ? DateTime.Now : ...

  4. MySQL建表时,日期时间类型选择

    MySQL(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  D ...

  5. C#将Excel数据表导入SQL数据库的两种方法(转)

    最近用写个winform程序想用excel 文件导入数据库中,网上寻求办法,找到了这个经过尝试可以使用. 方法一: 实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环 ...

  6. C#将Excel数据表导入SQL数据库的两种方法

    最近用写个winform程序想用excel 文件导入数据库中,网上寻求办法,找到了这个经过尝试可以使用. 方法一: 实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环 ...

  7. 如何将EXCEL表导入ORACLE数据库中?【转】

    来源:https://zhidao.baidu.com/question/383828330.html?qbl=relate_question_2&word=excel%20%B1%ED%CA ...

  8. PowerDesigner如何把建好的表导入到数据库中,并且把注释也导入进去

    第一次接触这个软件,经过自己的捣鼓和百度,终于可以顺利的导入数据库中了,好开森,希望可以帮助到更多人. 数据库(mysql)其实和sqlserver差不多,以16.5版本为例 1.选中一个PDM项目, ...

  9. 使用NPOI将Excel表导入到数据库中

    public string ExcelFile() { //指定文件路径, string fileName=@"d:\Stu.xls"; //创建一个文件流,并指定其中属性 usi ...

随机推荐

  1. Python画三维图-----插值平滑数据

    一.二维的插值方法: 原始数据(x,y) 先对横坐标x进行扩充数据量,采用linspace.[如下面例子,由7个值扩充到300个] 采用scipy.interpolate中的spline来对纵坐标数据 ...

  2. [转]理解和配置 Linux 下的 OOM Killer

    最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题.这通常是因为某时刻应用程序大量请求内存导致系统 ...

  3. 了解CSS overflow属性 标签: htmlcss属性 2016-12-31 14:38 75人阅读 评论(1)

    overflow属性规定当内容溢出元素框时如何显示. 例:div { width:150px; height:150px; overflow:scroll; } 可能的值有: 值           ...

  4. 10.IDEAD 的xml中配置DTD

    此时发现最后一行已经变成绿色就说明可以了,有提示了

  5. Bootstrap关于排版

    1.Bootstrap和普通的HTML页面一样,定义标题都是使用标签<h1>到<h6>,只不过Bootstrap覆盖了其默认的样式 2.使用了<small>标签来制 ...

  6. python实现RGB转化为灰度图像

    问题: 我正尝试使用matplotlib读取RGB图像并将其转换为灰度.在matlab中,我使用这个: 1 img = rgb2gray(imread('image.png')); 在matplotl ...

  7. 浅谈 Mysql

    数据库一些基本的概念 Mysql 基础操作 Mysql 数据类型 Mysql 表的完整性约束 Mysql 表的操作 Mysql 数据增删改查语句 Mysql 多表查询 Mysql 索引原理及分类 My ...

  8. VirtualBox没有权限访问共享文件夹

    将用户添加至vboxsf组 命令: sudo adduser ly vboxsf 搞定!

  9. poj 3006水题打素数表

    #include<stdio.h> #include<string.h> #define N 1100000 int isprim[N],prime[N]; void ispr ...

  10. [bzoj2049][Sdoi2008]Cave 洞穴勘测_LCT

    Cave 洞穴勘测 bzoj-2049 Sdoi-2008 题目大意:维护一个数据结构,支持森林中加边,删边,求两点连通性.n个点,m个操作. 注释:$1\le n\le 10^4$,$1\le m\ ...