【发布时间】:2019-07-03 12:34:38
【问题描述】:
我正在寻求帮助。我有一个日期字段作为日期时间 YYYY/MM/DD HH:MM:SS,我需要它是 DD/MM/YYYY HH:MM:SS。然后我使用了 convert(varchar) 但不能按 desc 排序,显示这个:
31/01/2019 17:00:00:000
31/01/2019 17:00:00:000
18/01/2019 13:30:00:000
18/01/2019 13:30:00:000
07/02/2019 03:00:00:000
07/02/2019 03:00:00:000
14/02/2019 12:00:00:000
CONVERT(VARCHAR(10),ISNULL(tbl_date1,tbl_date2),103) + ' ' + CONVERT(VARCHAR(20),ISNULL(tbl_date1,tbl_date2),14)
我不知道如何在 sql 中执行此操作。我已经厌倦了演员和转换,我一直得到相同的结果。
我一直在搜索,尝试不同的方法,但没有得到结果。任何帮助都会非常感激,谢谢!
【问题讨论】:
-
您可以在返回格式化的 VARCHAR 值的同时按 DATETIME 值排序。
-
您不必按 varchar 列排序,您可以创建 varchar 列作为输出并仍然按原始日期时间列排序。我认为这是错误的,但不确定,因为我没有看到实际的查询。
-
是的,我试过了,但我遇到了和以前一样的问题:如果指定了 SELECT DISTINCT,ORDER BY 项目必须出现在选择列表中
-
再次,您需要包含产生该错误消息的实际完整查询。最后一行代码不是会产生该错误消息的查询。
-
是的,当然。完成
标签: sql sql-server tsql sql-server-2008