如图所示,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中的日期,时间组合查询的更多相关文章

  1. sql server中的日期详解使用(convert)

    转自:http://blog.csdn.net/hehe520347/article/details/48496853 有个字段值例如2012-07-02 00:00:00.000 转化成 2012- ...

  2. SQL Server中INNER JOIN与子查询IN的性能测试

    这个月碰到几个人问我关于"SQL SERVER中INNER JOIN 与 IN两种写法的性能孰优孰劣?"这个问题.其实这个概括起来就是SQL Server中INNER JOIN与子 ...

  3. SQL Server中Table字典数据的查询SQL示例代码

    SQL Server中Table字典数据的查询SQL示例代码 前言 在数据库系统原理与设计(第3版)教科书中这样写道: 数据库包含4类数据: 1.用户数据 2.元数据 3.索引 4.应用元数据 其中, ...

  4. sql server中的日期函数

    DATEADD   在向指定日期加上一段时间的基础上,返回新的 datetime 值. 语法           DATEADD ( datepart , number, date ) 参数 (1) ...

  5. SQL Server中的日期格式化

    SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate()    2004-09-12 11:06:08 ...

  6. java web系统中时间比sql server中的日期少2天的解决办法

    系统环境 jdk:1.7 数据库:sql server 2008 问题描述 升级1.7之后查询出来的日期就比数据库中的少2天,降回1.6版本的jdk就正常了. 问题原因及解决办法 国内网站有很多不靠谱 ...

  7. SQL Server 2008对日期时间类型的改进

    微软在备受多年的争议后,终于对日期时间数据类型开刀了,在新版的SQL Server 2008中一口气增加了4种新的日期时间数据类型,包括: Date:一个纯的日期数据类型. Time:一个纯的时间数据 ...

  8. Mysql 中的日期时间字符串查询

    一.将数据库中的Date格式的数据,或者指定日期的字符串格式化为想要的样式 DATE_FORMAT (date, format)能根据格式串format 格式化日期或日期和时间值date,返回结果字符 ...

  9. SQL Server中一些不常见的查询

    把一些不常见但又会用到的SQL查询整理备份一下 --筛选出某个字段中包含中文的记录 SELECT * FROM temp WHERE W1 LIKE '%[吖-座]%' --筛选出某个字段在哪些表中存 ...

随机推荐

  1. sql 时间函数用法

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  2. Access 将SQL查询结果强制转换为某种类型

    每个函数都可以强制将一个表达式转换成某种特定数据类型. 语法 CBool(expression) CByte(expression) CCur(expression) CDate(expression ...

  3. FFmpeg编译i386 OSX 脚本

    话不多说, 直接上脚本 #!/bin/sh # directories PLATFORM="OSX" # FFmpeg脚本目录 SOURCE="ffmpeg-2.8.7& ...

  4. Ubuntu下eclipse无法识别手机驱动(以小米2S为例子)

    google官方开发向导里对Android手机已经设置了允许安装非market程序,并且处于usb调试模式,但是仍然在usb连接电脑后无法被识别的问题作了解释. 在Ubuntu Linux环境下需要添 ...

  5. 提升Java代码质量(三)

    Item7:覆盖equals时需要遵守通用约定 在我们日常开发过程中,重写equals是比较常用的,但存在许多不合适的覆盖方式导致错误,最好的避免方法就是不去重写equals.但有时我们的业务又需要建 ...

  6. C/S框架设计经验小结

    C/S架构程序应用广泛,比如常见的QQ.微信.Outlook,还有手机上的各种APP都是C/S架构的.C指的是Client,即客户端,S指的是Server,即服务端. 经常听到初学者争论,是学C/S结 ...

  7. ajax实现异步请求的过程

    var xhr;        xhr = new XMLHttpRequest(); //创建一个异步对象        xhr.open("Get", "test.a ...

  8. vue-实现一个购物车结算页面

    这是路由之间的跳转,传递值最好采用传参,而不是用$emit和$on,不起作用 如果实在一个页面中的兄弟组件,可以使用$emit和$on 中间件,eventBus.js 放在components目录下面 ...

  9. JS随机生成100个DIV每10个换行(换色,生成V字和倒V)

    附图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...

  10. C# ,通用内存集合对象分页、筛选(lambda那点事)

    通常呢我们需要翻页的数据大多都是从数据库中取,翻页.筛选.排序啥的都是通过SQL语句由数据库帮我搞定,那么有些需求没有数据库呢?或者有些数据只存在于内存中不存到数据库呢?怎么实现内存里面的对象集合的通 ...