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 '%[吖-座]%' --筛选出某个字段在哪些表中存 ...
随机推荐
- linux 编程笔记1 crusher for linux
1.反显示字符crusher #include <stdio.h> int main (int argc, char *argv[]) { printf("\033[7m mor ...
- Storm概念学习系列之Stream消息流 和 Stream Grouping 消息流组
不多说,直接上干货! Stream消息流是Storm中最关键的抽象,是一个没有边界的Tuple序列. Stream Grouping 消息流组是用来定义一个流如何分配到Tuple到Bolt. Stre ...
- Windows安全认证是如何进行的?[Kerberos篇]
最近一段时间都在折腾安全(Security)方面的东西,比如Windows认证.非对称加密.数字证书.数字签名.TLS/SSL.WS-Security等.如果时间允许,我很乐意写一系列的文章与广大网友 ...
- 服务器端控件的"客户端"
控件的服务端ID和客户端ID 比如一个ID为TextBox1的服务器端控件,在客户端访问该控件的DOM元素时 错误: var txtbox=document.getElementByID(" ...
- Java基础重点指南
Java基础重点指南 每个人都有自己的学习方法,下面是我学完Java后总结的一些要点: 一:(了解)Java诞生于1995年,由Sun公司开发.它把源代码编译成“中间码”,然后通过“Java虚拟机”把 ...
- textArea 默认添加的空格
1.会莫名多出一些空格(标签闭合换行了) <textarea class="borderstyle width97b height75" name="SmsTax. ...
- 一个简单的EventEmitter
用JS写了一个简单的EventEmitter: class EventEmitter { /** * 事件名/回调列表 字典 * @type {Map<string, Array<func ...
- nginx配置文件语法高亮
下载文件 nginx.vim https://vim.sourceforge.io/scripts/script.php?script_id=1886 安装 下载 nginx.vim 文件到 ~/.v ...
- ubuntu双屏调整分辨率
查看屏幕硬件指标 # xrandr Screen 0: minimum 8 x 8, current 2390 x 768, maximum 32767 x 32767 LVDS1 connected ...
- ECLIPSE 取消自动更新
经常遇到一开eclipse 时,一直很卡的问题,发现是它一直尝试联网更新东西 ,如maven 所以解决办法 , eclipse 取消自动更新的方法: 1. window --> prefere ...