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 '%[吖-座]%' --筛选出某个字段在哪些表中存 ...
随机推荐
- Python3.5 调用Ansible 执行命令
ansible.py #!/usr/bin/env python3 # -*- coding: utf-8 -*- import os import tempfile from collections ...
- RabbitMQ使用教程(三)如何保证消息99.99%被发送成功?
1. 前情回顾 RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例 RabbitMQ使用教程(二)RabbitMQ用户管理,角色管理及权限设置 在以上两篇博客发布后 ...
- Javascript常见问题
倒计时 <Script Language="JavaScript"> var timedate= new Date("October 1,2002" ...
- VS2008 Pocket PC 2003 SE VGA仿真程序网络设置
最近对这个问题摸索的很久,都没有解决,今天终于搞定,现将大体设置步骤记录下来,以备回顾和方便别人查看,步骤如下: 1.打开VS2008,打开Windows Mobile设备中心(网上有下载). 2.连 ...
- 【mysql】mysql 配置
安装完mysql后, 要及得配置一下 /etc/mysql/my.cnf 配置字符编码为utf8 [client] default-character-set = utf8 [mysqld] defa ...
- SpringBoot集成mybatis和mybatis generator
利用搭建的基本的spring boot框架,集成 mybatis + generator 1.设置 maven 的相关配置: File - setting - maven 设置 Maven home ...
- 【转】Nginx跳转任意Http请求到Https
网站买了证书,绿条,多霸气! 那么自然得拦截http的访问方式了. 拦截http,301到https 各种Google,最后在Nginx官网找到例子,配置很简单,如下: server { listen ...
- JS随机生成100个DIV每10个换行(换色,生成V字和倒V)
附图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...
- [Jira]启动报错无法删除缓存文件felix-cache的解决方法
背景: 由于公司机房停电,jira服务器在停电期间需要关机处理,然而待重启启动服务时,jira出现报错,页面报错信息如下: Unable to clean the cache directory: / ...
- 人工智能背景下的 Office 365 现状和发展趋势
谈论人工智能是让人兴奋的,因为它具有让人兴奋的两大特征 —— 每个人都似乎知道一点并且以知道一点为荣,但又好像没多少人能真正讲的明白.毫无疑问,我也仅仅是知道一点点,这一篇文章试图想通过比较接地气的方 ...