sql-server - 按两个日期排序查询结果
问题描述
我正在尝试使用两个日期订购一些数据,但无论出于何种原因,我都无法达到我期望的结果。
考虑以下数据集:
DOS | CreatedOn
2018-09-14 08:15:00 | 2018-09-14 13:17:09
2018-09-04 09:15:00 | 2018-09-14 13:40:42
2018-09-04 09:15:00 | 2018-09-18 12:59:01
2018-09-04 09:15:00 | 2018-09-18 13:02:11
2018-09-04 09:15:00 | 2018-09-18 13:21:10
2018-09-04 09:15:00 | 2018-09-18 01:47:07
2018-09-04 09:15:00 | 2018-09-18 13:52:47
2018-09-18 08:30:00 | 2018-09-18 14:22:26
2018-09-18 08:30:00 | 2018-09-18 14:23:07
2018-09-18 08:30:00 | 2018-09-18 14:23:53
2018-09-18 08:30:00 | 2018-09-18 14:24:09
2018-09-18 08:30:00 | 2018-09-18 14:25:17
2018-09-18 08:30:00 | 2018-09-18 14:26:34
2018-09-18 08:30:00 | 2018-09-18 14:30:35
2018-09-04 09:15:00 | 2018-09-18 14:34:45
2018-09-18 09:15:00 | 2018-09-18 14:43:13
我正在尝试对数据集进行排序,使其按以下顺序排列:
DOS | CreatedOn
2018-09-18 09:15:00 | 2018-09-18 14:43:13
2018-09-18 08:30:00 | 2018-09-18 14:30:35
2018-09-18 08:30:00 | 2018-09-18 14:26:34
2018-09-18 08:30:00 | 2018-09-18 14:25:17
2018-09-18 08:30:00 | 2018-09-18 14:24:09
2018-09-18 08:30:00 | 2018-09-18 14:23:53
2018-09-18 08:30:00 | 2018-09-18 14:23:07
2018-09-18 08:30:00 | 2018-09-18 14:22:26
2018-09-14 08:15:00 | 2018-09-14 13:17:09
2018-09-04 09:15:00 | 2018-09-18 14:34:45
2018-09-04 09:15:00 | 2018-09-18 13:52:47
2018-09-04 09:15:00 | 2018-09-18 13:21:10
2018-09-04 09:15:00 | 2018-09-18 13:02:11
2018-09-04 09:15:00 | 2018-09-18 12:59:01
2018-09-04 09:15:00 | 2018-09-18 01:47:07
2018-09-04 09:15:00 | 2018-09-14 13:40:42
但是,我从查询结果中得到的是:
DOS | CreatedOn
2018-09-04 09:15:00 | 2018-09-18 14:34:45
2018-09-04 09:15:00 | 2018-09-18 13:52:47
2018-09-04 09:15:00 | 2018-09-18 13:21:10
2018-09-04 09:15:00 | 2018-09-18 13:02:11
2018-09-04 09:15:00 | 2018-09-18 12:59:01
2018-09-04 09:15:00 | 2018-09-18 01:47:07
2018-09-04 09:15:00 | 2018-09-14 13:40:42
2018-09-14 08:15:00 | 2018-09-14 13:17:09
2018-09-18 08:30:00 | 2018-09-18 14:30:35
2018-09-18 08:30:00 | 2018-09-18 14:26:34
2018-09-18 08:30:00 | 2018-09-18 14:25:17
2018-09-18 08:30:00 | 2018-09-18 14:24:09
2018-09-18 08:30:00 | 2018-09-18 14:23:53
2018-09-18 08:30:00 | 2018-09-18 14:23:07
2018-09-18 08:30:00 | 2018-09-18 14:22:26
2018-09-18 09:15:00 | 2018-09-18 14:43:13
这是我的查询:
Select V.DOS,V.CreatedOn from Visits As V where V.DOS between '2018-09-01 00:00:00' and '2018-09-19 00:00:00' Order by V.DOS, V.CreatedOn desc
这两个字段都是 DateTime 字段。不知道为什么我没有得到正确的订单。当我从订单列表中删除任何一个字段并只留下一个字段时,它会正确排序。但是,当我将它们都按列表排序时,它不是首先按第一列排序。
解决方案
您在 order by 子句中缺少 V.DOS 之后的 desc。您需要在每个日期之后按降序排列。目前是按DOS升序排序,CreatedOn降序排序
推荐阅读
- php - php中的SQL,使用LIKE进行部分搜索
- android - 为什么我的 APK 在同一个 Android 版本上运行的性能不同?
- c# - 如何从 C# 以编程方式启动具有提升权限的 Appium 本地服务
- javascript - 使用导入选择对象属性的问题
- pdf - 用 flatedecode 理解 pdf 结构
- python - 无法导入用于定位搜索 API 的 facebook SDK
- karate - 空手道——并行执行失败
- algorithm - 如何在有利位置树中搜索?
- javascript - 在JS中按类型拆分可能相邻的未知长度元素的字符串
- asp.net-core - dotnet Core:.deps.json 中使用的 sha512 和 shaPath 属性是什么