|
Многокр. вызов "timestamp 'now'" в ХП выдаёт одно и то же в отл. от cast(now as timestamp)
|
|||
---|---|---|---|
#18+
hi all Дано: процедурка, извлекающая из текущего таймштампа миллисекунды по отн. к фиксированной дате 01-янв-2010, и сохраняющая эти миллисеки в контекстной переменной: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Замена строки: Код: plaintext
Код: plaintext
Но паазвольте-с! Я ведь не обращаюсь к current_timestamp 'у, а вызываю именно 'now' . Что не так ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2015, 18:12 |
|
Многокр. вызов "timestamp 'now'" в ХП выдаёт одно и то же в отл. от cast(now as timestamp)
|
|||
---|---|---|---|
#18+
ТаблоидЯ ведь не обращаюсь к current_timestamp'у, а вызываю именно'now'. Что не так ? Ты не отличаешь литерала от вызова функции. timestamp 'что угодно' - это литерал, он вычисляется при компиляции. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2015, 18:17 |
|
Многокр. вызов "timestamp 'now'" в ХП выдаёт одно и то же в отл. от cast(now as timestamp)
|
|||
---|---|---|---|
#18+
да, что-то тупанул я к вечеру ближе.... спс. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2015, 19:04 |
|
Многокр. вызов "timestamp 'now'" в ХП выдаёт одно и то же в отл. от cast(now as timestamp)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТаблоидЯ ведь не обращаюсь к current_timestamp'у, а вызываю именно'now'. Что не так ?Ты не отличаешь литерала от вызова функции. timestamp 'что угодно' - это литерал, он вычисляется при компиляции.Извиняйте, что поднимаю тему, но по-прежнему "беспокоит меня девятый стул" (С). Вот скрипт, с двумя execute block'ами. Он выдаст при каждом своём вызове две строки: одну с datediff'ами, вычисленными по внутренним переменным execute block'a (они названы t0a, t0b & t1), а вторую - с datediff'ами, вычисленным по out-параметрам execute block'a (у них те же имена): Код: 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. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176.
Код: plaintext 1. 2. 3. 4. 5.
А вот результат работы батника (нечётные строки - когда таймштампы задавались во внутренних переменных, чётные - когда в out-параметрах): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
1) первое из чисел в каждом кортеже (незав. от EB) - это дифферент между Код: plaintext
Код: plaintext
2) второе из чисел - это дифферент между Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 13:04 |
|
Многокр. вызов "timestamp 'now'" в ХП выдаёт одно и то же в отл. от cast(now as timestamp)
|
|||
---|---|---|---|
#18+
t0a - время, когда парсер добрался до строки Код: plaintext
t1 - время, когда парсер добрался до строки Код: plaintext
t0b - время, когда выполнялась строка Код: plaintext
Дальше надо объяснять ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 13:34 |
|
Многокр. вызов "timestamp 'now'" в ХП выдаёт одно и то же в отл. от cast(now as timestamp)
|
|||
---|---|---|---|
#18+
hvladt0a - время, когда парсер добрался до строки Код: plaintext
t1 - время, когда парсер добрался до строки Код: plaintext
t0b - время, когда выполнялась строка Код: plaintext
Дальше надо объяснять ?да, хотелось бы тут подробнее. Вот есть "поток входных байтов": Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Результат для 10 запусков: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Каким способом значение в переменную t0b заехало (в рантайме !) раньше на 16 мс, чем компилятор этого EB глядел на строку, в которой идёт присваивание ' t1 ' ? И есл так и должно было быть, то почему во второй строке записано ноль вместо минусового числа ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 16:53 |
|
Многокр. вызов "timestamp 'now'" в ХП выдаёт одно и то же в отл. от cast(now as timestamp)
|
|||
---|---|---|---|
#18+
Таблоидзначение в переменную t0b заехало раньше на 16 мс Позже Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 16:58 |
|
Многокр. вызов "timestamp 'now'" в ХП выдаёт одно и то же в отл. от cast(now as timestamp)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, да, согласен; всё-таки тупняк мой не лечится почему-то :-/ Но и засада с этими var1 = timestamp 'now' vs var2 = 'now' - тоже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 17:13 |
|
|
start [/forum/topic.php?fid=40&msg=39141627&tid=1562413]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 146ms |
0 / 0 |