2016-05-25 2 views
0

Как найти разницу во времени между сегодняшней датой и указанной датой в SQL. Указанный столбец даты (P.SubscrpEndDate__c) находится в формате даты (12/1/2014 12:00 Am). Я использовал ниже запрос, но он не работаетРазница между сегодняшней датой и указанной датой в SQL

DATEDIFF(day,GETDATE(), P.SubscrpEndDate__c) AS 'SubscriptionDueDate' 
+0

"это делать не работает" - в том, что путь? Это заставляет ваш компьютер взорваться? Появляется сообщение об ошибке? Вы получаете результат, в отличие от того, который вы ожидали? Если это последний из них, пожалуйста, дайте нам пример ваших фактических данных и какой вывод вы ожидаете *. Если это сообщение об ошибке, * что * говорит об ошибке? –

+0

Я пишу SQL-запрос в Salesforce Marketing Cloud и пытаюсь заполнить данные в Data Data от Salescloud до Marketingcloud. Облако маркетинга поддерживает только несколько ограниченных функций из SQL и, следовательно, такие функции, как Now(), не работают. Если я говорю, что это не работает, я хочу сказать, что я не получаю данные, загруженные в мое расширение данных в облаке маркетинга через активность Query, которую я использую. В облаке маркетинга он не выдает ошибку, если данные не заполняются, это значит, что они не работают. Надеюсь, это поможет. –

ответ

0

В MySQL, DATEDIFF функция принимает только два аргумента: дата окончания и дата начала:

DATEDIFF(NOW(), P.SubscrpEndDate__c) AS 'SubscriptionDueDate' 

Согласно инструкции:

DATEDIFF(expr1, expr2) возвращает expr1 - expr2, выраженное как значение в дней от от одной даты до другой.

Также для получения текущей даты и времени вы должны использовать NOW() вместо GETDATE.

0

Он должен работать в SQL Server. Я предполагаю, что столбец даты (SubscrpEndDate__c) в вашей таблице будет содержать более низкие значения, чем текущая дата, поэтому просто вы можете использовать запрос ниже. Я только что заменил третьи параметры, чтобы получить положительную разницу в днях. Вы также можете использовать функцию ABS(), чтобы игнорировать отрицательную разницу.

SELECT DATEDIFF(day,P.SubscrpEndDate__c,GETDATE()) AS 'SubscriptionDueDate' 
+0

Я использовал ваш запрос, не было никакой синтаксической ошибки, однако не получилось желаемого результата. Заселенными данными являются P.SubscrpEndDate__c = 8/1/2016 12:00 AM и SubscriptionDueDate = 3/10/1900 12:00 AM. Кажется, функция DateDIFF не работает. Любое решение? –

+0

Надеюсь, вы используете SQL Server. Ниже запроса работает для меня, я только что использовал переменные даты. Пожалуйста, добавьте переменные префиксов @ @. DECLARE SubscrpEndDate__c DATETIME = '8/1/2016 12:00 AM' DECLARE SubscriptionDueDate DATETIME = '3/10/1900 12:00 AM' SELECT DATEDIFF (dd, SubscriptionDueDate, SubscrpEndDate__c) AS DateDifference – Sandesh

0

Это будет работать, пожалуйста, проверьте

ВЫБЕРИТЕ DATEDIFF (NOW(), P.SubscrpEndDate__c) AS SubscriptionDueDate FROM xyz_table WHERE ID = '123456'

Смежные вопросы