powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сложить два времени
11 сообщений из 11, страница 1 из 1
Как сложить два времени
    #32543497
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сложить два времени

a=Time
b=3 (имеется ввиду три часа)
...
Рейтинг: 0 / 0
Как сложить два времени
    #32543504
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DateAdd("h", 3, Time)
...
Рейтинг: 0 / 0
Как сложить два времени
    #32543517
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для скурпулёзности
Код: plaintext
1.
DateAdd("h",  3 , a)
...
Рейтинг: 0 / 0
Как сложить два времени
    #32543554
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не так давно узнал, что надо писать скрУпулезности и кУры тут нипричем
ЗЫ А не ошибся ли в последнем слове?
...
Рейтинг: 0 / 0
Как сложить два времени
    #32543564
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Scrupula, scrupula!
...
Рейтинг: 0 / 0
Как сложить два времени
    #32543695
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для полноты картины:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub AddTimeTest()
    Dim dt1 As Date, dt2 As Date, dt3 As Date

    dt1 = # 13 : 17 # + # 03 : 00 #
    dt2 = dt1 + TimeSerial( 3 ,  0 ,  0 )
    dt3 = TimeSerial(Hour(dt2) +  3 , Minute(dt2),  0 )

    MsgBox dt1 & vbCrLf & dt2 & vbCrLf & dt3
End Sub
...
Рейтинг: 0 / 0
Как сложить два времени
    #32545790
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что за фигня

Int=270
Tim.Text = DateAdd("n", Int, Time)

Если при сложении время переваливает через полночь то пишется: (31.12.1899 1:22:19). Откуда тут дата?
...
Рейтинг: 0 / 0
Как сложить два времени
    #32545817
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получился 1 день. Положительное число.
В типе данных Date (сохраняется как 64-разрядное (8-байтовое) число с плавающей точкой, целая часть - дни)- 0 это 30 декабря 1899, вот он и прибавил.
...
Рейтинг: 0 / 0
Как сложить два времени
    #32545866
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что время (в смысле тольеко часы, мин и сек) это частный случай типа Date и хранится оно в компе как дробная часть дня, т.е. 1 - это один день, а 1 час это 1/24, соответственно мин = 1/24/60 и т.д. В Акцесе за нулевую дату принят
format(CDate(0),"dd/mm/yyyy hh:nn:ss") = 30/12/1899 00:00:00
Значит, сегодня:
cdbl(Now) = 38141.3476851852
Время записывается в поле даты как нуль дней + часы, например, 08:20 = 30/12/1899 00:08:20, соответсвенно, добавление нескольеих часов, переходящих через сутки, увеличит количество дней на 1 и превратит время в дату, например,
?DateAdd("h", 20, Time) = 31/12/1899 04:25:48 AM, а Акцес такой формат уже распознает, как дату, а не как время!
Поэтому, занимаясь вычислениями времени (в смысле тольеко часы, мин и сек) нужно проставлять полный формат даты, а именно:
DateAdd("h", 20, Now) = 04/06/2004 04:32:44 AM
Тогда все понятно и нет вопросов.

Кстати, в MS SQL Server за нулевую дату принято другое число
select cast(0 as datetime) = 1900-01-01 00:00:00.000
и это может приводить к ошибкам вычисления даты, которая из бейсика и акцеса записывается в таблицы в серевера в своем формате.
...
Рейтинг: 0 / 0
Как сложить два времени
    #32546064
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и в функции для добавления часов надо H, а не N (N - это минуты)
...
Рейтинг: 0 / 0
Как сложить два времени
    #32546660
Galustov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По-моему дата/время один из самых глючных моментов в базах данных - вечно какие-то заморочки из бочки
IMHO
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сложить два времени
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]