Unpack packed numeric temporal value to date/time value and then convert to decimal representation. @param OUT dec The variable to write to. @param type MySQL field type. @param packed_value Packed numeric temporal representation. @return A decimal value in on of the following formats, depending on type: YYYYMMDD, hhmmss.ffffff or YYMMDDhhmm
| 1542 | on type: YYYYMMDD, hhmmss.ffffff or YYMMDDhhmmss.ffffff. |
| 1543 | */ |
| 1544 | my_decimal *my_decimal_from_datetime_packed(my_decimal *dec, |
| 1545 | enum enum_field_types type, |
| 1546 | longlong packed_value) |
| 1547 | { |
| 1548 | MYSQL_TIME ltime; |
| 1549 | switch (type) |
| 1550 | { |
| 1551 | case MYSQL_TYPE_TIME: |
| 1552 | TIME_from_longlong_time_packed(<ime, packed_value); |
| 1553 | return time2my_decimal(<ime, dec); |
| 1554 | case MYSQL_TYPE_DATE: |
| 1555 | TIME_from_longlong_date_packed(<ime, packed_value); |
| 1556 | ulonglong2decimal(TIME_to_ulonglong_date(<ime), dec); |
| 1557 | return dec; |
| 1558 | case MYSQL_TYPE_DATETIME: |
| 1559 | case MYSQL_TYPE_TIMESTAMP: |
| 1560 | TIME_from_longlong_datetime_packed(<ime, packed_value); |
| 1561 | return date2my_decimal(<ime, dec); |
| 1562 | default: |
| 1563 | DBUG_ASSERT(0); |
| 1564 | ulonglong2decimal(0, dec); |
| 1565 | return dec; |
| 1566 | } |
| 1567 | } |
| 1568 | |
| 1569 | |
| 1570 | /** |
nothing calls this directly
no test coverage detected