![]() |
|
|
![]()
|
|
| tikitiki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 10.5.2005 Репутация: нет Всего: нет |
Кто-нибудь может сказать, что в результате
разницы двух переменных типа DateTime получается? Хотелось бы научиться манипулировать нормально этим типом. Я его использую, но наугад и не совсем наверное правильно. Как определить хотя бы разницу между двумя датами и как результат применить для умножения (например, человек зарабатывает 1 коп/день.Как определить сколько он заработал с 12:00 до 13:00 в один и тот же день или например с 12:30 01.01.05 до 13:30 02.02.05. Я понимаю, что надо разность даты и времени вычислить, затем 1 коп. умножить на то что получилось. Но опять же не пойму разность в каком виде у меня будет). И ещё. Я разность даты и времени всё же использую в коде и в SQL, но у меня сомнения возникают насчёт того, что у меня на границах интервала времени получается и правильно ли я определяю интервал времени? Например у меня такой запрос к БД: SELECT Numnmb, SUM(Numcost*(c.Datetwo-c.Dateone)) as Summa1 FROM client c,number n WHERE (c.Dateone>="1.1.5 12:0" AND c.Datetwo<="31.12.5 12:0") and c.Numnmb=n.Numnmb GROUP BY Numnmb В запросе Datetwo и Dateone -поля из одной таблицы типа DataTime, Datetwo -отвечает за конечную дату интервала времени, Dateone-за начальную. Не углубляясь в запрос, можно сказать-правильно я использую тип DataTime для расчётов в контексте выше сказанного? |
|||
|
||||
| tikitiki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 10.5.2005 Репутация: нет Всего: нет |
Я коснулся по-моему слишком большого вопроса. Попробую упростить. Избегу ли я ошибок, если пользоваться запросами наподобие того, что выше? Вычитал, что DateTime представляет из себя на самом деле тип float, у которого целая часть-дата, дробная -время. Хотелось бы поконкретней.
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 2 Всего: 484 |
Целая часть - кол-во дней прошедших с 30.12.1899.
Дробная - кол-во секунд с начала суток. Это сообщение отредактировал(а) Snowy - 7.9.2005, 19:45 |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Народ, не путайте две разницы. В Делфи - да, целая часть - дни, дробная - соответственно дробная часть дня. Не количество секунд.
Но у серверов форматы даты - не такие. И поля называются по-разному. Например: MS SQL - smalldatetime - дата и время с точностью до 1 мин. с 1.01.1900 по 6.06.2079 datetime - дата и время с точностью 3.33 мс с 1.01.1753 по 31.12.9999. И потому дата в запросе и дата в результате чтения поля - отличаются. Прочтешь поле из Делфи-клиента - получишь Делфи-формат. Напишешь запрос на вычисление чего-то на сервере - получишь для вычисления даты в формате сервера. tikitiki Читай доку по серверу насчет формата даты и функций, работающих с ней. |
|||
|
||||
| tikitiki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 10.5.2005 Репутация: нет Всего: нет |
Яснее просто не бывает. Беру на вооружение.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |