|
|
|
DATE as INTEGER
|
|||
|---|---|---|---|
|
#18+
Всем привет кого не знаю (а не знаю я всех)… Этот вопрос наверняка уже рассматривался и не один раз… Хочу поделиться своими мыслями (возможно глупыми… тогда можете не читать)… IB практически не имеет встроенных функций преобразования данных. Все решается с помощью внешних UDF и только числовые поля можно вычислять и менять при необходимости... Следовательно, если дату хранить в виде числа дней, то возможна любая обработка и ее изменение внутренними средствами без использования UDF. Если работать с датой без времени, то можно ее хранить как INTEGER. Я написал для примера процедурки Encode/Decode… (привожу дальше) Прошу не судить строго… (толком их еще и не проверил)… Это только ПРИМЕР, на основе которого можно сделать другие… (получение первого и последнего дня месяца и др.) При расчетах я использовал следующие числа: 1G = 365 365 4G = 1G * 4 + 1 1461 100G = 4G * 25 - 1 36524 1000G = 100G * 10 + 1 365241 Если выполнить следующее: Код: plaintext 1. 2. То получим: 0, 1900, 3, 1 (1900 г – не високосный) Учтите – что если на Delphi или C++Builder дату присвоить int, то нулем будет 30.12.1899 А также: - для показа в гриде нужно вычисляемое поле, а для редактирования - обычный TMaskEdit (TDBEdit не подойдет). В принципе из INTEGER можно получить CHAR и DATE (чего не скажешь об обратном преобразовании, хотя тоже можно… только придется повозиться с получением INTEGER из CHAR). Кусочек SQL: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. Успехов ВАМ… Дерзайте… zow@temz.tomsk.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 10:00:16 |
|
||
|
DATE as INTEGER
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. Ну чего человека обламываешь :) Изобретать велосипеды полезно. Зато не будет потом вопросов типа "Как мне быстренько сделать так, чтобы над проблемой не думать и все работало" Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 12:27:25 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32555880&tid=1578474]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
175ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 183ms |
| total: | 438ms |

| 0 / 0 |
