我有一个小表,用于使用这种模式的每日日志:
id (int, not null)
timestamp (datetime, not null)
costcenter (int, not null)
initials (varchar(3),null)
memo (varchar(250),not null)
ID是一个自增Identity
列。
运行查询后,这里是所有数据行
SELECT id, timestamp
FROM LOG
ORDER BY TIMESTAMP DESC
得到的结果是
8 2018-12-30 10:51:08.000
7 2018-12-29 10:51:08.000
6 2018-12-13 10:51:08.000
5 2018-12-12 10:51:08.000
4 2018-01-04 08:31:00.000
3 2018-01-03 08:31:00.000
2 2018-01-02 08:45:00.000
1 2018-01-02 08:31:00.000
显然不是按降序排列的!
如果我省略了DESC
关键字,查询结果将以ID列的顺序返回(1-8)。因此,看来我实际上是按ID而不是时间戳进行排序。
我想念什么吗? ID栏是否有问题?
答案 0 :(得分:1)
我在一个名为TIMESTAMP的字段上遇到了一些问题,可能是因为它是保留字。 我已经在我的机器上进行了测试,并且如您所显示的那样工作正常,但是问题可能取决于SQL版本。我会尝试伪造系统以将其标识为字段:
SELECT id, [timestamp]
FROM LOG
ORDER BY 2 DESC
或者:
SELECT id, [timestamp] AS Time_Stamp
FROM LOG
ORDER BY Time_Stamp DESC
甚至:
{{1}}
答案 1 :(得分:0)
您可以尝试:
SELECT id, timestamp
FROM LOG
ORDER BY TIMESTAMP + 1 DESC