2017-01-30 7 views
0

Мне нужно рассчитать количество дней между двумя полями даты в зависимости от того, является ли одна из дат нулевой или нет. Если переменная date имеет значение null, мне нужно включить сегодняшнюю дату. Пожалуйста помоги. Пользователь SAS пытается настроить запрос для других пользователей в базе данных Access 2010. Я ищу язык SQL для вставки в мой запрос. Большое спасибо!Расчет даты в операторе If-then

ex.

if dbo.nameoftable[date1] <> " " then time = [date1] - [date2] 
elseif dbo.nameoftable[date1] = " " then time = ?todays date - [date2]endif; 

спасибо !!

+0

Неясно, что вы просите. Вы не отметили язык, и хотя вы сказали «пожалуйста, помогите с SQL», это не похоже на SQL. Или, если это так, неясно, какой вкус SQL вы работаете. Пожалуйста, прочитайте [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask), затем вернитесь сюда и отредактируйте свой вопрос, чтобы мы могли вам помочь. Благодарю. –

+0

Привет, Мэтт, извиняюсь за любую путаницу. Я опытный пользователь SAS, которому было предложено создать запрос для других пользователей в Access. Я прошу помощи с языком для создания инструкции if-then в Access. Когда я получаю доступ, я вижу, что вы можете посмотреть на базовый язык SQL. Я использую Access 2010. – Kathy

ответ

0

Вам не нужна логика if-then. Просто используйте функцию Nz, которая позволяет указать значение для использования, когда поле равно null.

Кроме того, вы должны использовать DateDiff, а не -, чтобы указать, с какими единицами вы работаете.

На текущую дату используйте функцию Date. Обратите внимание, что это возвращает текущий день в локальном часовом поясе компьютера, на котором выполняется запрос,.

Собираем все вместе:

SELECT DateDiff('d', [date2], Nz([date1], Date())) AS [DifferenceInDays] FROM nameoftable; 

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

  • Нет связанных вопросов^_^