sql - 如何将日期时间的转换存储在具有新列名的新列中,可以在其上使用 ORDER BY?
问题描述
我有一个日期时间列,我想从此列中删除重复的“日期”。
我现有列的数据类型是 datetimeoffset(7):
2018-06-17 00:44:13.0000000 +00:00
我现在可以像这样提取日期:
SELECT CONVERT(VARCHAR(10), mytimestamp_column, 102) FROM [dbo].[myTable]
where mycondition = 1223445
这给了我一个这样的专栏:
(No column name)
2018.06.18
2018.06.17
2018.06.16
.... and so on
现在我试图给这个新列一个名字,所以我可以在这个列上使用“ORDER BY”来对结果进行排序。第一个问题,我该怎么做,我正在尝试以下并得到语法错误:
select newcolumn from(
(SELECT CONVERT(VARCHAR(10), mytimestamp_column, 102) FROM [dbo].[myTable]
where mycondition = 1223445) as newcolumn
order by newcolumn desc
第二个问题:我如何以简单的方式从结果集中删除重复的日期,我试图避免冗长而复杂的表达式/公式?
tnx :)
解决方案
只需按数量/列或别名直接订购:
SELECT
CONVERT(VARCHAR(10), mytimestamp_column, 102) AS col
FROM [dbo].[myTable]
WHERE mycondition = 1223445
ORDER BY
col DESC;
你真的不需要在这里进行子查询。
推荐阅读
- oracle - PLS-00049: 创建过程时绑定变量错误
- python - 有没有办法检查你正在运行什么 python 程序?
- javascript - 元素在面板中,但无法从 js 或控制台访问
- java - 通过 YAML 文件加载基于抽象类的对象
- xamarin - 无法在 Monodevelop 中编译程序
- python - 如何计算坐标之间的成对harsine距离
- php - 在 Wordpress 中记录 PHP 的 mail() 函数
- javascript - 为什么three.js投射阴影不适用于3D模型
- javascript - 如何检查元素是否出现在while循环中
- android - 在 ImageView 中使用 TextView 创建 ScrollView 时遇到问题