SQL Server строка для преобразования даты - PullRequest
1 голос
/ 27 июля 2011

У меня следующий запрос:

SELECT  o.OrderNumber,
    cast(o.DateOrdered as datetime),
    cast(oi.Category as varchar(max))

 FROM   Orders o
    LEFT OUTER JOIN OrderItems oi ON oi.OrderID = o.uid
    LEFT OUTER JOIN OrderAddresses oa ON oa.OrderID = o.uid

 WHERE O.DateOrdered LIKE '6%2011%' AND (oa.Type = '4') AND (oa.Country = 'US')

 GROUP BY cast(oi.Category as varchar(max)), cast(o.DateOrdered as datetime), o.OrderNumber

У меня проблемы с форматированием datetime как mm/dd/yyyy. Неважно, что я пробовал, я продолжаю получать YYYY-MM-DD 00:00:00:000. Я должен пропустить что-то простое в синтаксисе и надеялся, что кто-то может указать мне правильное направление? (SQL Server 2005)

Спасибо!

Ответы [ 3 ]

1 голос
/ 27 июля 2011

CAST будет преобразовывать только типы данных, но не дает возможности выбирать любое форматирование.

Для форматирования вам нужно будет использовать CONVERT (см. MSDN Books Online для подробной информации):

Попробуйте

SELECT CONVERT(VARCHAR(25), GETDATE(), 101)

, которая должна отображать текущую дату в нужном формате.

1 голос
/ 27 июля 2011

Попробуйте CONVERT вместо CAST:

CONVERT(VARCHAR(10), o.DateOrdered , 101)

Таким образом, оператор GROUP BY будет выглядеть так:

GROUP BY CAST(oi.Category as varchar(MAX)), CONVERT(VARCHAR(10), o.DateOrdered , 101), o.OrderNumber 
0 голосов
/ 28 июля 2011

Похоже, DateOrdered является VARCHAR

Пожалуйста, попробуйте

SELECT  o.OrderNumber,
    CONVERT(VARCHAR(25),cast(o.DateOrdered as datetime), 101),
    cast(oi.Category as varchar(max))

 FROM   Orders o
    LEFT OUTER JOIN OrderItems oi ON oi.OrderID = o.uid
    LEFT OUTER JOIN OrderAddresses oa ON oa.OrderID = o.uid

 WHERE O.DateOrdered LIKE '6%2011%' AND (oa.Type = '4') AND (oa.Country = 'US')

 GROUP BY cast(oi.Category as varchar(max)), CONVERT(VARCHAR(25),cast(o.DateOrdered as datetime), 101), o.OrderNumber
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...