|
Тема |
Re: TIME_FORMAT в MySQL [re: gonzales] |
|
Автор |
salle (Един такъв) |
|
Публикувано | 26.09.02 19:58 |
|
|
И да и не ....
Когато 19:43:56 се използва в цифров контекст се преобразува до 194356
Само, че това не е "аритметична операция" - това е резултат от "преобразуване на тип"
Правилото за преобразуване на Date/Time тип до число е да се махнат всички разделители. Причината е проста - полученото число може да се сравнява директно с =, !=, >, <
19:00:00 > 18:52:00 -> 1 защото 190000 > 185200
Сам разбираш обаче, че няма особен смисъл от аритметични операции върху тези две числа.
Така, че внимавай в какъв контекст използваш TIME (а и другите типове) като символен низ, Число или TIME
Демонстрация:
mysql> select curtime() as Type_TIME, curtime()+0 as Type_INT, concat(curtime()) as Type_CHAR, concat(curtime())+0 as Type_CHAR_to_INT;
+-----------+----------+-----------+------------------+
| Type_TIME | Type_INT | Type_CHAR | Type_CHAR_to_INT |
+-----------+----------+-----------+------------------+
| 19:50:14 | 195014 | 19:50:14 | 19 |
+-----------+----------+-----------+------------------+
Или иначе казано TIME 19:50:14 конвертирано до число е 195014, а CHAR '19:50:14' конвертирано до число е 19
Наздраве :)
|
| |
|
|
|