sql - 在sql中排序日期
问题描述
我将日期存储在我的列中
Wednesday, November 21, 2018
Wednesday, August 22, 2018
Wednesday, August 22, 2018
Wednesday, August 22, 2018
Wednesday, August 15, 2018
Tuesday, November 27, 2018
Tuesday, November 06, 2018
Monday, November 19, 2018
我在用
ORDER BY CONVERT(varchar(100), submissionDate, 101) DESC
但它没有以排序方式给我列。我的专栏是 NVARCHAR(MAX)
解决方案
如果您坚持使用列类型 nvarchar,您可以将值转换为日期,如下所示:
SELECT *, submissionDate
, convert(date
, right(submissionDate, len(submissionDate)
- charindex(',', submissionDate))
, 107) as my_date
FROM your_table
ORDER BY my_date
要不就
SELECT submissionDate
FROM your_table
ORDER BY convert(date
, right(submissionDate, len(submissionDate)
- charindex(',', submissionDate))
, 107)
由于您的日期格式,转换有点麻烦。Sql Server 似乎没有匹配的内置格式。因此,我们通过删除第一个逗号之前的部分来摆脱星期几(星期一,..),然后结果符合 format 107 (Mon dd, yyyy)
。
推荐阅读
- java - java.sql.SQLException:列计数与准备好的语句的第 1 行的值计数不匹配
- javascript - 如何让 VueJS 注意到新添加的 DOM 元素?
- php - 检查MySQL中是否没有数据
- php - 从第 5 个帖子开始,每 10 个帖子显示一次图像
- android - 在 Android 中,如何测试依赖于另一个活动结果的活动?
- linux - Yocto 图像配方和 SRC_URI
- docker - 如何确保服务“全局”在所有节点上运行?
- mysql - 强制 django 管理搜索栏不区分大小写
- c# - 截断表 C# 找不到表 - 不存在或没有权限
- node.js - 带有多线程 nodeJS 服务器的 Graphql 订阅