Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
1 / 1 / 0
Регистрация: 14.11.2018
Сообщений: 490
1

Число дней между двумя датами

23.05.2019, 22:39. Просмотров 5729. Ответов 12
Метки нет (Все метки)


Искал ,искал я в интернете как же вычислить число дней между двумя полями, так ничего и не нашел. Кто_нибудь может занчет как найти число дней между двумя полями?
Есть вот такой пример
SQL
1
2
3
4
5
6
7
8
CREATE TABLE dbo.Duration  
    (startDate datetime2, endDate datetime2);  
    
INSERT INTO dbo.Duration(startDate, endDate)  
    VALUES ('2007-05-06 12:10:09', '2007-05-07 12:10:09');  
    
SELECT DATEDIFF(DAY, startDate, endDate) AS 'Duration'  
    FROM dbo.Duration;
Нашел на сайт MS вот этот код. Вставил в phpmyadmin. Не работает. Ответ MySQL: Документация

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'startDate , datetime2 endDate )' at line 1
Как посчитать то количество дней между датами разных полей может кто-нибудь написать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2019, 22:39
Ответы с готовыми решениями:

Узнать количество рабочих дней между двумя датами
Приведите пример пожалуйста

Посчитать количество будних дней между двумя датами
Подскажите, возможно ли как то подсчитать количество будних дней между двумя датами не создавая...

Запрос между датами
Добрый вечер! Кто-нибудь сможет подсказать: есть таблица в бд, в ней, например, 4 даты -...

Разница между датами в формате YY:MM:DD
Собственно, как?

12
Эксперт MS Access
16258 / 6719 / 1458
Регистрация: 21.06.2012
Сообщений: 12,396
24.05.2019, 06:55 2
Цитата Сообщение от Гуру77777 Посмотреть сообщение
Нашел на сайт MS вот этот код.
Откуда на сайте MS взялся текст SQL для MySQL?

Документацию по MySQL прочитать что мешает?
DATEDIFF( expr1 , expr2 )

DATEDIFF() возвращает expr1 - expr2 выраженное в виде значений в днях от одной даты до другой. expr1 и expr2 являются expr1 даты или даты и времени. В расчете используются только части даты значений.

Не по теме:

Третий раз одно и тоже ... .

0
Модератор
3872 / 2846 / 544
Регистрация: 21.01.2011
Сообщений: 12,344
24.05.2019, 09:16 3
Цитата Сообщение от Гуру77777 Посмотреть сообщение
Нашел на сайт MS вот этот код
Сайт по MySQL
https://dev.mysql.com/doc/refman/
1
1 / 1 / 0
Регистрация: 14.11.2018
Сообщений: 490
24.05.2019, 10:36  [ТС] 4
ltv_1953,
SQL
1
2
SELECT datediff("day", "члены_комиссий.Дата_Выхода","члены_комиссий.Дата_Вступления") AS _My_date_diff
FROM `члены_комиссий`
Пишет #1582 - Incorrect parameter count in the call to native function 'datediff' Что неправильно?

Добавлено через 8 минут
Grossmeister,
SELECT DATEDIFF( "члены_комиссий.Дата_Выхода", "члены_комиссий.Дата_Вступления" ) *24 *60 *60 AS _My_date_diff
FROM `члены_комиссий`
WHERE Код_Депутата =7
LIMIT 0 , 30
Запрос работает только выводит NULL. Что это значит? В полях есть даты
0
Zero day
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 940
Записей в блоге: 4
24.05.2019, 10:57 5
Гуру77777, такое поведение возникает при умножении числа (*24 *60 *60) на null-значение. Следовательно, datediff, видимо, возвращает null.
0
Эксперт MS Access
16258 / 6719 / 1458
Регистрация: 21.06.2012
Сообщений: 12,396
24.05.2019, 10:59 6
Цитата Сообщение от Гуру77777 Посмотреть сообщение
Пишет #1582 - Incorrect parameter count in the call to native function 'datediff' Что неправильно?
ТС не читатель? Где в приведенном описании три параметра? Только два ... .
0
1 / 1 / 0
Регистрация: 14.11.2018
Сообщений: 490
24.05.2019, 11:11  [ТС] 7
ltv_1953, Там без "d" NULL вылазит

Добавлено через 1 минуту
Meridian21,Т.е разница между двумя полями NULL. Там даты 1998-03-23 и 1998-04-25 Ну никак NULL не может быть
0
Эксперт MS Access
16258 / 6719 / 1458
Регистрация: 21.06.2012
Сообщений: 12,396
24.05.2019, 11:17 8
Лучший ответ Сообщение было отмечено Гуру77777 как решение

Решение

Цитата Сообщение от Гуру77777 Посмотреть сообщение
SELECT DATEDIFF( "члены_комиссий.Дата_Выхода", "члены_комиссий.Дата_Вступления" )
А так
SQL
1
SELECT DATEDIFF(члены_комиссий.Дата_Выхода, члены_комиссий.Дата_Вступления)
Зачем двойные кавычки?
1
Zero day
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 940
Записей в блоге: 4
24.05.2019, 11:21 9
Гуру77777, дело не всегда в том, что есть проблема с данными, дело, иногда, бывает в том, что не корректно записано условие.
Если открыть любой туториал по mysql и функции datediff, то увидим описание и пример:
SQL
1
SELECT DATEDIFF('2017-05-28', '2017-05-27')
И смотрим на свой код:
SQL
1
2
3
4
SELECT DATEDIFF( "члены_комиссий.Дата_Выхода", "члены_комиссий.Дата_Вступления" ) *24 *60 *60 AS _My_date_diff
FROM `члены_комиссий` 
WHERE Код_Депутата =7
LIMIT 0 , 30
Смотрим до полного просветления и пробуем это:
SQL
1
2
3
4
SELECT DATEDIFF( 'члены_комиссий.Дата_Выхода', 'члены_комиссий.Дата_Вступления')*24 *60 *60 AS My_date_diff
FROM члены_комиссий
WHERE Код_Депутата =7
LIMIT 0 , 30
0
1 / 1 / 0
Регистрация: 14.11.2018
Сообщений: 490
24.05.2019, 11:25  [ТС] 10
ltv_1953, Спасибо!!!

Добавлено через 2 минуты
Meridian21, Я так тоже пробовал. Результат один тот же. А вот как ltv_1953, написал,работает.
0
229 / 161 / 54
Регистрация: 26.10.2014
Сообщений: 912
24.05.2019, 12:57 11
Цитата Сообщение от Meridian21 Посмотреть сообщение
'члены_комиссий.Дата_Выхода', 'члены_комиссий.Дата_Вступления'
Meridian21, таким образом вы в функцию две строки передаете. Если нужно взять в кавычки поле или таблицу - берем их в обратные кавычки.
0
Zero day
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 940
Записей в блоге: 4
24.05.2019, 13:08 12
mac1eod, да, согласен, пропустил этот момент. Свой же copy-paste всегда надо проверять...)
0
1 / 1 / 0
Регистрация: 14.11.2018
Сообщений: 490
24.05.2019, 14:00  [ТС] 13
Meridian21, А как не выводить среднюю цену рядом с каждым товаром а только одни раз в начале
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2019, 14:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Выбор между датами в базе данных
Есть таблица с датами показа фильма, в которой есть столбцы COLUMN_STARTDAY и COLUMN_END, в них...

Как узнать интервал времени между датами
Есть два поля в таблице типа DataTime, необходимо узнать какой интервал времени между этими датами...

Определить число дней между двумя известными датами. Если вторая дата предшествует первой, то результат отрицательный
Здравствуйте! Помогите, пожалуйста, мне решить вот такую задачу (желательно, чтобы работало в Qt...

Определить число дней между двумя известными датами. Если вторая дата предшествует первой, то результат отрицательный
Здравствуйте! Помогите, пожалуйста, мне решить вот такую задачу: Определить число дней между...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.