Имеет ли сервер SQL функцию, которая позволяет получить максимальную дату из двух указанных дат, аналогичную oracle - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть следующий код в Oracle, и я пытаюсь преобразовать его в sql сервер, и я получаю сообщение об ошибке «Неверный формат даты: Hh24: MI: SS AM»

decode(TO_CHAR(max(ord.shpdte), 'Hh24:MI:SS AM'), '12:00:00 AM', ' ', TO_CHAR(max(ord.shpdte), 'Hh24:MI:SS')) "Shipment_date"

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Кажется, вы просто хотите преобразовать значение во время. Я бы придерживался типа данных time:

select convert(time, max(ord.shpdte))

Если вы действительно хотите преобразовать это в строку, просто используйте встроенный формат:

select convert(varchar(max), convert(time, max(ord.shpdte)))

Или используйте format() для точной строки, которую вы хотите.

0 голосов
/ 26 апреля 2020
DECLARE
    @TestData TABLE
    (
        SomeDate DATETIME
    );

INSERT INTO @TestData
VALUES
(
    '20200425'
),
(
    '20200426'
);


SELECT
    MAX(SomeDate)
FROM
    @TestData;

Скрипка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...