Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 29 30 31 32 33 34 35 36 37 [38]
 Re: Топик "как я лажанулся"  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3249
Гаджимурадов Рустам
И зачем вообще эти танцы с бубном, если
даты напрямую нормально сравниваются,
или ваш 40+10 этого не знал?

У МС всё не как у людей. И до 2008 версии сервера даты нормально сравнивать нельзя было, народ велосипеды строчил. См. раз или два.
4 янв 18, 20:31    [21082299]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1223
JaDi
Проверка новогодних праздников вида "показывать поздравления с 15 декабря по 15 января":
 - взять текущий год;
 - сделать мин и макс даты вида:
   а. мин дата = текущий год, декабрь, 15;
   б. макс дата = текущий год + 1, январь, 15;
 - добавить проверку на "если сегодняшний день между макс и мин датой, то поздравить";
 - радоваться после нового года :-)


Что-то я не увидел в чем фейл. Объясните дураку.

Упс, пока писал сам увидел. "Текущий год" - он такой :)
4 янв 18, 20:36    [21082303]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57918
JaDi> И до 2008 версии сервера даты нормально сравнивать нельзя было

Глупости. Если кто-то что-то не умеет или строит кривые
лисапеды, это не значит, что в СУБД нет соотв. возможности.

Posted via ActualForum NNTP Server 1.5

4 янв 18, 20:38    [21082307]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3249
Гаджимурадов Рустам
JaDi> И до 2008 версии сервера даты нормально сравнивать нельзя было

Глупости. Если кто-то что-то не умеет или строит кривые
лисапеды, это не значит, что в СУБД нет соотв. возможности.

Нету нормальных. См. ссылки выше. Так что тут не всё так однозначно:
автор
И зачем вообще эти танцы с бубном, если
даты напрямую нормально сравниваются,
4 янв 18, 21:34    [21082398]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
rgreat
Member

Откуда:
Сообщений: 3860
Гаджимурадов Рустам
Неужели код вообще не тестировался?
Ну если не первый, то второй-третий
тест сразу же выявит ошибку...

Дык у него "YEAR(DATE1)>YEAR(DATE2) AND MONTH(DATE1)>MONTH(DATE2) AND DAY(DATE1)>DAY(DATE2)" нормально и не работало на тестах, после чего он попросил совета.
Отчего у него так в голове выглюкало подобный запрос - я не знаю.

И зачем вообще эти танцы с бубном, если
даты напрямую нормально сравниваются,
или ваш 40+10 этого не знал?
Я сам теряюсь.
К тому же это был не MSSQL и можно было напрямую Date1 и Date2 сравнить.
4 янв 18, 21:58    [21082417]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
alekcvp
Member

Откуда:
Сообщений: 606
JaDi
У МС всё не как у людей. И до 2008 версии сервера даты нормально сравнивать нельзя было, народ велосипеды строчил. См. раз или два.

А ничего что в первом случае чувак сравнивает DATETIMEы только по дате и удивляется что у него это не получается?

Ну это как в дельфи написать:
const 
  A: Single = 10.23;
  B: Single = 10.0;
...
if A <=B then ...
И удивляться потом, почему A <= B ложно, ведь оба равны 10?..
4 янв 18, 22:38    [21082458]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3249
alekcvp
JaDi
У МС всё не как у людей. И до 2008 версии сервера даты нормально сравнивать нельзя было, народ велосипеды строчил. См. раз или два.

А ничего что в первом случае чувак сравнивает DATETIMEы только по дате и удивляется что у него это не получается?

А ничего, что речь шла про велосипеды, которые вынуждены писать разработчики из-за отсутствия стандартного решения?

alekcvp
Ну это как в дельфи написать:
const 
  A: Single = 10.23;
  B: Single = 10.0;
...
if A <=B then ...
И удивляться потом, почему A <= B ложно, ведь оба равны 10?..

Неверный пример (опечатка?). Для делфи эта тема тоже актуальна, т.к. время в датах пробирается при любом удобном случае, например, при получение последнего дня в году или месяце. И потом косячутся сравнения, если забудется где DateOf.
4 янв 18, 23:36    [21082513]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
alekcvp
Member

Откуда:
Сообщений: 606
JaDi
которые вынуждены писать разработчики ...

... не подумавшие хранить дату и время в базе раздельно, если им нужен к ним раздельный доступ?
4 янв 18, 23:49    [21082520]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3249
alekcvp
JaDi
которые вынуждены писать разработчики ...

... не подумавшие хранить дату и время в базе раздельно, если им нужен к ним раздельный доступ?

Раздельно хранить дату и время в базе -- мягко говоря спорное решение, для которого должны быть ВЕСКИЕ причины. Наверное, хорошая история получилась бы про "лажание" для этой темы.
5 янв 18, 00:29    [21082539]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57918
JaDi> отсутствия стандартного решения?

Что за бред? Есть обычные операции сравнения,
есть соотв. функции datediff etc, есть cast и convert
в конце концов. Лыжи нужно к месту одевать.

Posted via ActualForum NNTP Server 1.5

5 янв 18, 00:43    [21082550]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57918
alekcvp> ... не подумавшие хранить дату и время в базе раздельно,
alekcvp> если им нужен к ним раздельный доступ?

А если нужен вместе - хранить их ещё и в третьем поле? :)
Вот уж, действительно, в тему топика, из крайности в крайность.

Posted via ActualForum NNTP Server 1.5

5 янв 18, 00:44    [21082555]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3249
А вот, кстати, как у DevExpress обрезается время (dxDateOf) -- через преобразование в таймстамп:

Result := DateTimeToTimeStamp(AValue).Date - DateDelta;


Для сравнения родная делфя:
Result := Trunc(AValue);
5 янв 18, 10:24    [21082831]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
alekcvp
Member

Откуда:
Сообщений: 606
Гаджимурадов Рустам
alekcvp> ... не подумавшие хранить дату и время в базе раздельно,
alekcvp> если им нужен к ним раздельный доступ?

А если нужен вместе - хранить их ещё и в третьем поле? :)
Вот уж, действительно, в тему топика, из крайности в крайность.

Ну для вывода-то всегда можно объеденить, а если на сервере нет CAST(...) AS DATE, то что лучше?
5 янв 18, 12:28    [21082966]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57918
alekcvp> если на сервере нет CAST(...) AS DATE, то что лучше?

то лучше сменить этот сервер на нормальный. :)

Posted via ActualForum NNTP Server 1.5

5 янв 18, 12:39    [21082986]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 29 30 31 32 33 34 35 36 37 [38]
Все форумы / Delphi Ответить