SqlServer数据库表导入SqlLite数据库表保持日期时间类型字段的格式
在写查询功能的过程中遇到一个这样的问题:按日期范围查询,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数据库表保持日期时间类型字段的格式的更多相关文章
- Mysql 建表时,日期时间类型选择
mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 D ...
- linux mysql 数据库操作导入导出 数据表导出导入
linux mysql 数据库操作导入导出 数据表导出导入 1,数据库导入 mysql -uroot -p show databases; create database newdb; use 数据库 ...
- 数据库里面DataTime时间类型字段,如果为null时
tran.TransactionTime = bet.CreationDate.ToString() == "0001/1/1 0:00:00" ? DateTime.Now : ...
- MySQL建表时,日期时间类型选择
MySQL(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 D ...
- C#将Excel数据表导入SQL数据库的两种方法(转)
最近用写个winform程序想用excel 文件导入数据库中,网上寻求办法,找到了这个经过尝试可以使用. 方法一: 实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环 ...
- C#将Excel数据表导入SQL数据库的两种方法
最近用写个winform程序想用excel 文件导入数据库中,网上寻求办法,找到了这个经过尝试可以使用. 方法一: 实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环 ...
- 如何将EXCEL表导入ORACLE数据库中?【转】
来源:https://zhidao.baidu.com/question/383828330.html?qbl=relate_question_2&word=excel%20%B1%ED%CA ...
- PowerDesigner如何把建好的表导入到数据库中,并且把注释也导入进去
第一次接触这个软件,经过自己的捣鼓和百度,终于可以顺利的导入数据库中了,好开森,希望可以帮助到更多人. 数据库(mysql)其实和sqlserver差不多,以16.5版本为例 1.选中一个PDM项目, ...
- 使用NPOI将Excel表导入到数据库中
public string ExcelFile() { //指定文件路径, string fileName=@"d:\Stu.xls"; //创建一个文件流,并指定其中属性 usi ...
随机推荐
- 【剑指Offer】55、链表中环的入口结点
题目描述: 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. 解题思路: 本题是一个比较典型的链表题目,难度适中.首先,对于大多人来说,看到这道题是比较开心的 ...
- [luogu2329 SCOI2005] 栅栏(二分+搜索)
传送门 Solution 纯搜索80分,加二分90分,再补一个小剪枝满分qwq 真.小剪枝:如果下一个的需求和当前相同,那么不需要再次从头开始试(看代码就明白了233) Code #include & ...
- 爬取表格类网站数据并保存为excel文件
本文转载自以下网站:50 行代码爬取东方财富网上市公司 10 年近百万行财务报表数据 https://www.makcyun.top/web_scraping_withpython6.html 主要学 ...
- 在eclipse中运行maven命令没有反应,console也不打印信息
eclipse的maven项目中,在run as 执行maven命令的时候发现毫无反应,console也不打印信息,原因是因为没有传参数,解决办法如下:①打开eclipse的window菜单: ②接 ...
- VMware虚拟机上安装CentOS 7
下载CentOS7,点击网址下载,地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso ...
- ubuntu-kill命令-杀死进程
显示进程pid ps -A 杀进程的命令 kill -s 9 xxx(进程pid)
- win10使用WampServer部署magento
1.安装wampserver及php.apache.mySQL组件,访问http://www.wampserver.com/en/#download-wrapper,下载以下文件并依次安装: ...
- MySQL优化之——为用户开通mysql权限
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46627263 为用户开通mysql权限: grant all privileges ...
- 全栈JavaScript之路( 二十 )HTML5 插入 html标记 ( 二 )insertAdjacentHTML
insertAdjacentHTML(), 这种方法也是在IE中最早出现的.如今已纳入html5规范,它接受两个參数,一个是下列的标记之中的一个,一个是要写入的 html 代码文本. beforeb ...
- java内存结构(执行时数据区域)
java虚拟机规范规定的java虚拟机内存事实上就是java虚拟机执行时数据区,其架构例如以下: 当中方法区和堆是由全部线程共享的数据区. Java虚拟机栈.本地方法栈和程序计数器是线程隔离的数据区. ...