|
|
|
разница datetime year to second, utc_to_datetime и прочее...
|
|||
|---|---|---|---|
|
#18+
Как найти наиболее точное совпадение двух полей datetime year to second? Есть большая таблица, в которой есть поле datetime year to second. В этой таблице нужно найти запись, удовлетворяющую определенному критерию. Но, в результате выборки может вернуться не одна запись. Тогда эти записи должны быть выбраны в порядке, наибольшего совпадения поля datetime с временем, указанным в запросе. Вопрос - как правильно найти запись с минимальной разницей двух datetime полей? Пробовал сделать order by abs(dtsubm-'2005-08-30 12:48:22') desc - ругается HY000:-9700:Routine (abs) ambiguous - more than one routine resolves to given signature. Что-то я не понимаю, какие тут могут быть разные варианты функции abs? Другая мысль - превращать datetime в аналог C-шного time_t - в секунды и сравнивать по ним, но не нашел как. Порывшись в инете выяснил, что есть dbinfo('utc_to_datetime', <datetime>), но не нашел функции, противоположной этой - есть такая? Как решить данный вопрос средствами сервера, чтобы не прибегать опять к написанию своих ДЛЛек и т.д.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 16:15 |
|
||
|
разница datetime year to second, utc_to_datetime и прочее...
|
|||
|---|---|---|---|
|
#18+
Утрированно where abs(dtsubm-'2005-08-30 12:48:22') < 10 sec ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 17:26 |
|
||
|
разница datetime year to second, utc_to_datetime и прочее...
|
|||
|---|---|---|---|
|
#18+
nkulikovУтрированно where abs(dtsubm-'2005-08-30 12:48:22') < 10 sec Это не решит проблему. Во-первых abs(dtsubm-'2005-08-30 12:48:22') выдаст ошибку. Во-вторых, идея не в том чтобы найти ближе 10 с, а в том, чтобы просто найти НАИБЛИЖАЙШУЮ запись, разница при этом может быть несколько секунд, а может быть и несколько часов. Я пока выкрутился так: order by case when dtsend>=tstamp2 then dtsend-tstamp2 else tstamp2-dtsend end но этот метод не травится тем, что сильно много попугаев стал выдавать explain. :( Поэтому жду других предложений :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 18:07 |
|
||
|
разница datetime year to second, utc_to_datetime и прочее...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. best regards, win-kim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 12:17 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=33249153&tid=1608926]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 376ms |

| 0 / 0 |
