SQL Server中的日期,时间组合查询
如图所示,Jdate和Jdate2是两个分开的字段,一个是date类型,存储日期,一个是time(0)类型,存储具体时间
现在有这样的要求,就是获得(Jdate和Jdate2组合起来的日期时间)在(当前日期时间之后)的数据
一开始我是用的SQL语句是 select * from table where Jdate>XXX and Jdate2 >XXX。这样的语句查询出来是有问题的,因为这两个条件是分开的,可以说是有前后关系,先满足Jdate再满足Jdate2,而这样写的话就是并列关系了,两个条件分别满足
这样的结果就是,得不到自己想要的数据,也为这件事发愁了很久,今天终于找到了方法
就是使用SQL自带的CONVERT函数,将日期转换为字符串,然后拼接起来,再进行比较。
要注意的是,不能直接这样写:select * from table where getdate()<convert(datetime,Jdate +Jdate2)
因为date类型的数据不支持+操作,会报错:操作数数据类型 date 对于 add 运算符无效。
而SQL并不像MySql自带字符串连接函数concat(),它的方法就是+号
所以需要先将事件类型数据进行转换,然后再进行拼接
比如获取当前时间:CONVERT(varchar(100), GETDATE(), 20)
而将两个字段的数据进行拼接则是:(convert(nvarchar,Jdate,23)+' '+convert(nvarchar,Jdate2,108))
用这两个字段,显示的数据如下
得到对应格式的数据之后,就可以进行比较了,以下是具体代码
select (convert(nvarchar,Jdate,23)+' '+convert(nvarchar,Jdate2,108))
from JZXX_JZ
where CONVERT(varchar(100), GETDATE(), 20)<(convert(nvarchar,Jdate,23)+' '+convert(nvarchar,Jdate2,108))
结果如下,当前时间为2018-12-5 13:07:00,使用SQL语句获得的数据都是这个时间点以后的数据了
也是个很简单的例子,但是还是同样的因为基础不扎实所以会困扰我很久,也感谢回答我那个提问的两位朋友
继续努力啊
2018-12-05 13:08:45
SQL Server中的日期,时间组合查询的更多相关文章
- sql server中的日期详解使用(convert)
转自:http://blog.csdn.net/hehe520347/article/details/48496853 有个字段值例如2012-07-02 00:00:00.000 转化成 2012- ...
- SQL Server中INNER JOIN与子查询IN的性能测试
这个月碰到几个人问我关于"SQL SERVER中INNER JOIN 与 IN两种写法的性能孰优孰劣?"这个问题.其实这个概括起来就是SQL Server中INNER JOIN与子 ...
- SQL Server中Table字典数据的查询SQL示例代码
SQL Server中Table字典数据的查询SQL示例代码 前言 在数据库系统原理与设计(第3版)教科书中这样写道: 数据库包含4类数据: 1.用户数据 2.元数据 3.索引 4.应用元数据 其中, ...
- sql server中的日期函数
DATEADD 在向指定日期加上一段时间的基础上,返回新的 datetime 值. 语法 DATEADD ( datepart , number, date ) 参数 (1) ...
- SQL Server中的日期格式化
SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 2004-09-12 11:06:08 ...
- java web系统中时间比sql server中的日期少2天的解决办法
系统环境 jdk:1.7 数据库:sql server 2008 问题描述 升级1.7之后查询出来的日期就比数据库中的少2天,降回1.6版本的jdk就正常了. 问题原因及解决办法 国内网站有很多不靠谱 ...
- SQL Server 2008对日期时间类型的改进
微软在备受多年的争议后,终于对日期时间数据类型开刀了,在新版的SQL Server 2008中一口气增加了4种新的日期时间数据类型,包括: Date:一个纯的日期数据类型. Time:一个纯的时间数据 ...
- Mysql 中的日期时间字符串查询
一.将数据库中的Date格式的数据,或者指定日期的字符串格式化为想要的样式 DATE_FORMAT (date, format)能根据格式串format 格式化日期或日期和时间值date,返回结果字符 ...
- SQL Server中一些不常见的查询
把一些不常见但又会用到的SQL查询整理备份一下 --筛选出某个字段中包含中文的记录 SELECT * FROM temp WHERE W1 LIKE '%[吖-座]%' --筛选出某个字段在哪些表中存 ...
随机推荐
- (转)rename命令详解
rename命令详解: 原文:http://www.cnblogs.com/amosli/p/3491649.html 对文件重命名是常用的操作之一,一般对单个文件的重命名用mv命令,如: amosl ...
- vnc安装问题
在xenserver中安装vncserver软件.启动显示正常 用grep命令查看也确实有线程在运行. 但实际上用命令service vncserver status查看vnc状态,显示没有桌面在运行 ...
- Josn转换
也是搬的,大家勿喷,贴出来只为了自己记忆查找 需要引用 System.Web.Extensions.dll 这个类库 命名空间: System.Web.Script.Serialization 数据结 ...
- JavaSE_5_线程
1.多线程中的i++线程安全吗?为什么? 不安全,因为每个线程都有自己的工作内存,每个线程需要对共享变量操作时必须把共享变量从主内存中加载到自己的工作内存,等完成操作后再保存到内存中,如果一个线程运算 ...
- mysql mysqldump 本地数据库导入本地数据库的命令
C:\Users\Administrator>mysqldump -h localhost -P 3306 -u root -proot -n -R --triggers foryou |mys ...
- bootstrap标签tab切换
<ul class="nav nav-tabs" id="myTab"> <li class="active">&l ...
- Android 环信 调用相机崩掉 mikdir()
protected void selectPicFromCamera() { if (!EaseCommonUtils.isSdcardExist()) { Toast.makeText(getAct ...
- Zabbix邮件报警设置方法
实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱. 具体操作: 以下操作在Zabbix监控服务端进行 备注:Zabbix监控服务端 操 ...
- jeesite应用实战(数据增删改查),认真读完后10分钟就能开发一个模块
jeesite配置指南(官方文档有坑,我把坑填了!)这篇文章里,我主要把jeesite官方给出的帮助文档的坑填了,按照里面的方法可以搭建起来jeesite的站点.系统可以运行以后,就可以进入开发模块了 ...
- HDU 3697 Selecting courses 选课(贪心)
题意: 一个学生要选课,给出一系列课程的可选时间(按分钟计),在同一时刻只能选一门课程(精确的),每隔5分钟才能选一次课,也就是说,从你第一次开始选课起,每过5分钟,要么选课,要么不选,不能隔6分钟再 ...