T-SQL select 不同的格式化日期时间,同时仍按未格式化的日期时间排序
T-SQL select distinct formatted datetime while still sorting as unformatted datetime
我在我正在使用的服务器上只有 SELECT 权限。我正在尝试编写一个查询,其中一列是格式化的日期时间:
--mydb.EventDate is column EventDate(datetime, not null)
SELECT DISTINCT
FORMAT(mydb.EventDate, 'M/d/yyyy h:mm:ss tt') as 'EventDate',
[Other Specified Columns]
FROM
mytsqldb.myschema.mytable AS mydb
ORDER BY
EventDate, [Other Specific Columns]
我还需要按事件日期按时间顺序排序。但是,使用这种格式,它会按字母顺序排序(我认为)。由于 SELECT DISTINCT,我无法在 ORDER BY 时转换 EventDate。但是,我不想在查询的输出中添加任何额外的列。日期时间的格式有点重要,但如果需要,我可以放弃那个幽灵。是我正在寻找的可能吗?
而不是 DISTINCT
使用 GROUP BY
:
SELECT
FORMAT(mydb.EventDate, 'M/d/yyyy h:mm:ss tt') as 'EventDate',
[Other Specified Columns]
FROM mytsqldb.myschema.mytable as mydb
GROUP BY mydb.EventDate, FORMAT(mydb.EventDate, 'M/d/yyyy h:mm:ss tt'), [Other Specified Columns]
ORDER BY mydb.EventDate, [Other Specific Columns]
或使用子查询:
SELECT FORMAT(t.EventDate, 'M/d/yyyy h:mm:ss tt') AS EventDate, [Other Specified Columns]
FROM (
SELECT DISTINCT
mydb.EventDate,
[Other Specified Columns]
FROM mytsqldb.myschema.mytable as mydb
) AS t
ORDER BY t.evDate, [Other Specific Columns]
我在我正在使用的服务器上只有 SELECT 权限。我正在尝试编写一个查询,其中一列是格式化的日期时间:
--mydb.EventDate is column EventDate(datetime, not null)
SELECT DISTINCT
FORMAT(mydb.EventDate, 'M/d/yyyy h:mm:ss tt') as 'EventDate',
[Other Specified Columns]
FROM
mytsqldb.myschema.mytable AS mydb
ORDER BY
EventDate, [Other Specific Columns]
我还需要按事件日期按时间顺序排序。但是,使用这种格式,它会按字母顺序排序(我认为)。由于 SELECT DISTINCT,我无法在 ORDER BY 时转换 EventDate。但是,我不想在查询的输出中添加任何额外的列。日期时间的格式有点重要,但如果需要,我可以放弃那个幽灵。是我正在寻找的可能吗?
而不是 DISTINCT
使用 GROUP BY
:
SELECT
FORMAT(mydb.EventDate, 'M/d/yyyy h:mm:ss tt') as 'EventDate',
[Other Specified Columns]
FROM mytsqldb.myschema.mytable as mydb
GROUP BY mydb.EventDate, FORMAT(mydb.EventDate, 'M/d/yyyy h:mm:ss tt'), [Other Specified Columns]
ORDER BY mydb.EventDate, [Other Specific Columns]
或使用子查询:
SELECT FORMAT(t.EventDate, 'M/d/yyyy h:mm:ss tt') AS EventDate, [Other Specified Columns]
FROM (
SELECT DISTINCT
mydb.EventDate,
[Other Specified Columns]
FROM mytsqldb.myschema.mytable as mydb
) AS t
ORDER BY t.evDate, [Other Specific Columns]