Sql 日期字段已转换为字符串-不允许按订单

Sql 日期字段已转换为字符串-不允许按订单,sql,datetime,Sql,Datetime,我正在使用SQL2008。(实际上是asp) 好的,我在Select中使用Convert的原因是因为我的数据具有不同时间的日期。但我希望所有结果都在同一天。所以我用了转换 我的问题是我想不出如何按订单。 我试着按发货日期排序,但现在是字符串,所以排序不正确 有人能帮忙吗?您有SQL Server 2008,因此可以使用日期类型 SELECT orderId, CONVERT(varchar, orderDate, 101) AS Date_Ordered, CONVERT

我正在使用SQL2008。(实际上是asp)

好的,我在Select中使用Convert的原因是因为我的数据具有不同时间的日期。但我希望所有结果都在同一天。所以我用了转换

我的问题是我想不出如何按订单。 我试着按发货日期排序,但现在是字符串,所以排序不正确


有人能帮忙吗?

您有SQL Server 2008,因此可以使用日期类型

SELECT
    orderId,
    CONVERT(varchar, orderDate, 101) AS Date_Ordered,
    CONVERT(varchar, CAST(sentDate as date), 101) AS Date_Shipped
FROM orders 
GROUP BY
   orderId, CONVERT(varchar, o.orderDate, 101), CAST(sentDate as date)
ORDER BY
   CAST(sentDate as date)
我记不清这是否被允许,但希望你能明白:如果不允许,就用这个

SELECT
    orderId,
    Date_Ordered,
    CONVERT(varchar, sentDate2, 101) AS Date_Shipped
FROM
    (
    SELECT
        orderId,
        CONVERT(varchar, orderDate, 101) AS Date_Ordered,
        CAST(sentDate as date) AS sentDate2
    FROM orders o
    GROUP BY
       orderId, CONVERT(varchar, orderDate, 101), CAST(sentDate as date)
    ) foo
ORDER BY
    sentDate2

您有SQL Server 2008,因此可以使用日期类型

SELECT
    orderId,
    CONVERT(varchar, orderDate, 101) AS Date_Ordered,
    CONVERT(varchar, CAST(sentDate as date), 101) AS Date_Shipped
FROM orders 
GROUP BY
   orderId, CONVERT(varchar, o.orderDate, 101), CAST(sentDate as date)
ORDER BY
   CAST(sentDate as date)
我记不清这是否被允许,但希望你能明白:如果不允许,就用这个

SELECT
    orderId,
    Date_Ordered,
    CONVERT(varchar, sentDate2, 101) AS Date_Shipped
FROM
    (
    SELECT
        orderId,
        CONVERT(varchar, orderDate, 101) AS Date_Ordered,
        CAST(sentDate as date) AS sentDate2
    FROM orders o
    GROUP BY
       orderId, CONVERT(varchar, orderDate, 101), CAST(sentDate as date)
    ) foo
ORDER BY
    sentDate2
顺便说一下,查询中的
o
别名是错误的,因为您没有这样的表别名


顺便说一下,查询中的
o
别名是错误的,因为您没有这样的表别名。

因为它不在Group By中,因为它不在Group By中