|
|
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Добрый вечер, всем. Делаю базу данных на Акцесс и Delphi, есть поле "дата окончания действия справки", как можно заменить данную дату на слово "бессрочно" если пользователь к примеру введет дату 31/12/2999 ? Нашла похожее решение для базы на акцесс, но мне это наверное не подойдет. https://www.sql.ru/forum/750528/datu-zamenit-slovom ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2020, 02:15 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Marina_ph, я бы дополнительное поле создал. признак бессрочно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2020, 09:26 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Marina_ph, А почему, собственно, не пойдет? Или IIF/CASE в запросе или соотв. формула непосредственно в генераторе отчетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2020, 11:34 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Marina_phкак можно заменить данную дату на слово "бессрочно" RTFM TField.OnGetText. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2020, 12:17 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Marina_ph, В поле null занести. Нет даты окончания => бессрочно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2020, 15:16 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
+ тоже за null. Дата окончания не указана - значит, её нет. По логике все ОК. Ну а отображение в клиенте через OnGetText. Еще преимущество - при выборках и фильтрах не потребуется таскать некое "магическое значение", как в случае с 31.12.2999. Ну и можно тешить себя тем, что программа устойчива к переходу на 3000-й год ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 10:36 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal, null обозначает, что даты нет, а не то, что она бессрочно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 17:26 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
cptngrbnull обозначает, что даты нет, а не то, что она бессрочно А "даты окончания нет" означает "бессрочно"? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 17:30 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Marina_ph, возможно данную конструкцию с MSSQL можно перевести на Access Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 18:12 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Gerasimenkoданную конструкцию с MSSQL можно перевести Эти странные люди там реально так пишут вместо простого Код: sql 1. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 18:18 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Gerasimenkoданную конструкцию с MSSQL можно перевести Эти странные люди там реально так пишут вместо простого Код: sql 1. ну, во первых твой код выдаст ошибку, а во вторых это дело привычки, т.к. null является частным случаем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 18:42 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Gerasimenkoво первых твой код выдаст ошибку С чего бы ему выдавать ошибку? Код: sql 1. 2. 3. 4. 5. 6. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 18:51 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Gerasimenkoво первых твой код выдаст ошибку С чего бы ему выдавать ошибку? Код: sql 1. 2. 3. 4. 5. 6. Msg 241, Level 16, State 1, Line 1 Conversion failed when converting date and/or time from character string. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 18:53 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
GerasimenkoMsg 241, Level 16, State 1, Line 1 Conversion failed when converting date and/or time from character string. Ух ты... Назачем оно "from" вместо "to"? Дивный мелкомягкий мир... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 18:57 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov GerasimenkoMsg 241, Level 16, State 1, Line 1 Conversion failed when converting date and/or time from character string. Ух ты... Назачем оно "from" вместо "to"? Дивный мелкомягкий мир... Да... ты бы еще удивился, как я , когда в одной из новых версий CAST и CONVERT начали выдавать не правильные выборки, которые раньше были правильными. Оказалось, что нужно теперь TRY_CAST и TRY_CONVERT использовать во многих случаях (если поле может принимать значение NULL) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 19:03 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Странно, что DS не проехался по любимой теме "нехрен заставлять сервер делать работу клиента по представлению данных" )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 19:19 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за ответы и советы)) но я если честно тупенькая и не понимаю как мне это лучше оформить. Базу данных делаю по учебнику Фленова Библия Делфи, но руководитель курсовой работы решила поиздеваться и добавила некоторые плюшки, типо таких как срок годности и так далее, поэтому и не понимаю как это сделать. Просто это должно быть в случае чего и в отчет выводится и сортировку по этому полю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 00:31 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
cptngrb Fr0sT-Brutal, null обозначает, что даты нет, а не то, что она бессрочно Ну, а во вторую - то, что задумал архитектор БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 01:25 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
YuRock Нет. NULL в первую очередь обозначает, что дата неизвестна (а не "её нет", это очень разные вещи). Ну, а во вторую - то, что задумал архитектор БД. "Бесконечно" можно представить в БД как: 1) ввести флаг "бесконечно" 2) ввести крайнюю (максимальную дату) типа 31.12.9999 (дополнительные телодвижения для ее заведения, непонятки в разных СУБД с поддержкой этой максимальной даты - мелочи конечно, да и эта крайняя дата никак не говорит, что это бесконечно - скорее весьма отдаленное будущее :) ) 3) оговорить в условиях задачи (заложить в архитектуру), что NULL (т.е. дата окончания не указана/неизвестна) - есть эквивалент "длится до тех пор пока дата окончания не указана - (т.е. фактически бесконечно). Судя со своей колокольни - для меня более предпочтителен 3й вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 01:38 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
DarkMaster YuRock Нет. NULL в первую очередь обозначает, что дата неизвестна (а не "её нет", это очень разные вещи). Ну, а во вторую - то, что задумал архитектор БД. "Бесконечно" можно представить в БД как: 1) ввести флаг "бесконечно" 2) ввести крайнюю (максимальную дату) типа 31.12.9999 (дополнительные телодвижения для ее заведения, непонятки в разных СУБД с поддержкой этой максимальной даты - мелочи конечно, да и эта крайняя дата никак не говорит, что это бесконечно - скорее весьма отдаленное будущее :) ) 3) оговорить в условиях задачи (заложить в архитектуру), что NULL (т.е. дата окончания не указана/неизвестна) - есть эквивалент "длится до тех пор пока дата окончания не указана - (т.е. фактически бесконечно). Судя со своей колокольни - для меня более предпочтителен 3й вариант. Имхо, самое логичное решение в данном случае. Тем более что оно прекрасно укладывается в общую концепцию. Когда, к примеру, ноль для некоторых свойств (типа Min/MaxValue) означает что пределы не заданы, а значит их нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 03:08 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
YuRock Нет. NULL в первую очередь обозначает, что дата неизвестна (а не "её нет", это очень разные вещи). Ну, а во вторую - то, что задумал архитектор БД. А если принять по умолчанию, что отсутствие даты окончания - это есть бессрочно, то понятия становятся тождественными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 11:08 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
cptngrb Marina_ph, я бы дополнительное поле создал. признак бессрочно +100500! MagicNumbers - даже если это null - это зло! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 11:18 |
|
||
|
Замена даты на слово
|
|||
|---|---|---|---|
|
#18+
DarkMaster 2) ввести крайнюю (максимальную дату) типа 31.12.9999 (дополнительные телодвижения для ее заведения, непонятки в разных СУБД с поддержкой этой максимальной даты Очень удобно, условие отбора записей для всех исторических (кроме тех, что хранятся срезами на дату) таблиц очень простое: Код: sql 1. Поля start_date и end_date называются одинаково во всех таблицах, поэтому условие удобно копипастить. Ну и читабельность запросов облегчает, не нужно всяких COALESCE-ов и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 11:37 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39976790&tid=2038165]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 368ms |

| 0 / 0 |
