Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / В чем хранить TIMESTAMP? / 14 сообщений из 14, страница 1 из 1
19.08.2018, 01:57
    #39689861
Fitter2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Если по этому полю планируется делать запросы, то в чем лучше его сохранять:
Как UNIXTIMESTAMP в char(10), int(10), varchar или сразу в Datetime. ? (Скорость работы важна, таблица может быть большой)

Спасибо.
...
Рейтинг: 0 / 0
19.08.2018, 02:30
    #39689864
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Fitter2,

Какие значения предполагается хранить?
Как будет использоваться это поле в запросах?
...
Рейтинг: 0 / 0
19.08.2018, 09:43
    #39689893
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
UNIXTIMESTAMP это целое число секунд.
Разумеется int.
...
Рейтинг: 0 / 0
19.08.2018, 11:18
    #39689909
Fitter2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
miksoft > Не понял про значения, если это про диапазон лет то 2018 - 2038, к примеру 1533581276 - если остановится на timestamp.

Запросы:

Код: sql
1.
2.
3.
SELECT * From tbl 
WHERE my_time > 'UNIX_TIMESTAMP( '2018-04-21' ) '
order by my_time



такой же between:
Код: sql
1.
2.
3.
SELECT * From tbl 
WHERE my_time BETWEEN  UNIX_TIMESTAMP( '2018-04-01' )  AND UNIX_TIMESTAMP( '2018-04-30' )
order by my_time



И:

Код: sql
1.
2.
3.
SELECT SUM(amount) , DATE(my_time) as Date FROM tbl
group by Date
order by Date



Спасибо.
...
Рейтинг: 0 / 0
19.08.2018, 12:03
    #39689927
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Fitter2,

Во всех запросах фигурирует только дата.
Если время не интересует, то подойдет тип DATE.
...
Рейтинг: 0 / 0
19.08.2018, 13:52
    #39689971
Fitter2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Извините, моя вина, хотел набросать по быстрому.

Когда делается запрос с группировкой, то да там время не важно, но когда просматривается пользователем , то оно необходимо.
...
Рейтинг: 0 / 0
19.08.2018, 23:42
    #39690114
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Fitter2,

Попробуйте TIMESTAMP.
...
Рейтинг: 0 / 0
20.08.2018, 12:32
    #39690342
Fitter2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
miksoft > Вопрос был , если TIMESTAMP то хранить его в каком формате? (char(10), int(10), varchar )

:)

Спасибо.
...
Рейтинг: 0 / 0
20.08.2018, 12:40
    #39690349
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Fitter2,

Чем вам сам TIMESTAMP не угодил? Зачем пользоваться какими-то суррогатами?
...
Рейтинг: 0 / 0
21.08.2018, 13:01
    #39690969
Fitter2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Думаю я не понимаю как его сохранить.
DDL:
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE `tbl` (
  `id` int(64) NOT NULL AUTO_INCREMENT,
    `user_id` int(64) DEFAULT NULL,
  `status_id` int(2) DEFAULT NULL,
    `start_time` timestamp NULL DEFAULT NULL COMMENT 'Start from our panel',
 ) ENGINE=MyISAM AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;



Я пытаюсь делать:

Код: sql
1.
2.
INSERT INTO tbl ('id', 'user_id', 'status_id', 'start_time')
VALUES(1 , 10, 1, '1378283588')



И в результате start_time выглядит так 00 00:00:00.
...
Рейтинг: 0 / 0
21.08.2018, 13:18
    #39690991
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
1378283588 - хреновое значение для поля типа TIMESTAMP.
Код: sql
1.
2.
INSERT INTO tbl ('id', 'user_id', 'status_id', 'start_time')
VALUES(1 , 10, 1, FROM_UNIXTINME(1378283588))
...
Рейтинг: 0 / 0
21.08.2018, 13:27
    #39691014
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Fitter2,

Int(64) писать бессмысленно, у int фиксированный размер 4 байта.
Если нужно больше, то используйте bigint.
...
Рейтинг: 0 / 0
21.08.2018, 14:51
    #39691116
Fitter2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Не становится легче :)

Можно по другому спрошу. В пакете данных приходит строка "1378283588" (она же таймстэмп).
В каком виде мне лучше ее хранить в базе вариант с FROM_UNIXTINME(1378283588) - не подходит, всё делается фреймворком и разрешается только подготовка данных.


Другой вопрос:
И попутно, по производительности лучше сохранить "1378283588" как строку или int(11)?


Спасибо.
...
Рейтинг: 0 / 0
21.08.2018, 16:27
    #39691189
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем хранить TIMESTAMP?
Fitter2,

int подходит, но при чтении и в операциях со временем могут понадобиться дополнительные преобразования.

Строковое хранение числа, обозначающего дату - пожалуй, наихудший вариант.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / В чем хранить TIMESTAMP? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]