Разница дат между двумя датами в формате 01/06/18 - PullRequest
0 голосов
/ 09 ноября 2018

Привет ВСЕМ Я пытаюсь получить разницу между двумя датами. Я получаю данные из куба и сохраняю во временную таблицу. Я попытался определить поле даты как varchar, а также дату и время Моя дата в формате 03/04/18 И я пытаюсь DATEDIFF(DAY, PAAR.DateReceived, O.DateReceived) получить разницу в количестве дней. Но я получаю ошибку, как показано ниже.

Когда я определил поле даты во временной таблице как DateTime или Date Msgstr "Столкновение типа операнда: ntext несовместимо с датой и временем" Когда я определил поле даты во временной таблице как Varchar, тогда «Преобразование не удалось при преобразовании даты и / или времени из строки символов.»

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Попробуйте это

set @sdate = '01/01/18';
set @edate = '01/26/18';

set @sdate = CONCAT_WS('-',SUBSTR(@sdate FROM 7 FOR 2),SUBSTR(@sdate FROM 1 FOR 2),SUBSTR(@sdate FROM 4 FOR 2));
set @edate = CONCAT_WS('-',SUBSTR(@edate FROM 7 FOR 2),SUBSTR(@edate FROM 1 FOR 2),SUBSTR(@edate FROM 4 FOR 2));

SELECT DATEDIFF(date(@edate), date(@sdate));
0 голосов
/ 09 ноября 2018

Я предлагаю вам использовать str_to_date() с соответствующими модификаторами формата для преобразования этих строк в даты.

DATEDIFF(str_to_date(PAAR.DateReceived,'%d/%m/%y'), str_to_date(O.DateReceived,'%d/%m/%y'))

см .: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

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