powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите сделать запрос с unixtimestamp
15 сообщений из 15, страница 1 из 1
Помогите сделать запрос с unixtimestamp
    #39724389
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть колонка с временем в формате unixtimestamp, необходимо сделать выборку за текущий день и за текущий месяц .
Заранее спасибо.
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724401
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну начало времен в юниксе ето
(1970, 1, 1, 0, 0, 0, 0)
чтоб получить сегодня или завтра просто добавте необходимое количество секунд к "началу времен"
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724403
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений.Добрый день.
Есть колонка с временем в формате unixtimestamp, необходимо сделать выборку за текущий день и за текущий месяц .
Заранее спасибо.Что за колонка? Какого типа?
Да и как поле называется и таблица? Хотя бы.

Примерно так:

Код: sql
1.
2.
WHERE DATEADD(SECOND, колонка, '1970')>=CAST(CURRENT_TIMESTAMP AS DATE)
  AND DATEADD(SECOND, колонка, '1970')<DATEADD(DAY,1,CAST(CURRENT_TIMESTAMP AS DATE))


Код: sql
1.
2.
WHERE DATEADD(SECOND, колонка, '1970')>=DATEADD(MONTH,DATEDIFF(MONTH,0,CURRENT_TIMESTAMP),0)
  AND DATEADD(SECOND, колонка, '1970')< DATEADD(MONTH,DATEDIFF(MONTH,0,CURRENT_TIMESTAMP)+1,0)
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724405
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За текущий день:
Код: sql
1.
2.
[колонка с временем в формате unixtimestamp] >= datediff(second, '1970', cast(getdate() as date)) and
[колонка с временем в формате unixtimestamp] < datediff(second, '1970', dateadd(day, 1, cast(getdate() as date)))

За месяц сделаете сами по аналогии.
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724409
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxxну начало времен в юниксе ето
(1970, 1, 1, 0, 0, 0, 0)
чтоб получить сегодня или завтра просто добавте необходимое количество секунд к "началу времен"
Логика то понятна как, а вот как именно реализовать это на практике, в этом сложность.
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724414
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapЕвгений.Добрый день.
Есть колонка с временем в формате unixtimestamp, необходимо сделать выборку за текущий день и за текущий месяц .
Заранее спасибо.Что за колонка? Какого типа?
Да и как поле называется и таблица? Хотя бы.

Примерно так:

Код: sql
1.
2.
WHERE DATEADD(SECOND, колонка, '1970')>=CAST(CURRENT_TIMESTAMP AS DATE)
  AND DATEADD(SECOND, колонка, '1970')<DATEADD(DAY,1,CAST(CURRENT_TIMESTAMP AS DATE))


Код: sql
1.
2.
WHERE DATEADD(SECOND, колонка, '1970')>=DATEADD(MONTH,DATEDIFF(MONTH,0,CURRENT_TIMESTAMP),0)
  AND DATEADD(SECOND, колонка, '1970')< DATEADD(MONTH,DATEDIFF(MONTH,0,CURRENT_TIMESTAMP)+1,0)


Как бы как именно у меня называется не думаю что сильно важно, но вот:
Тип int
Имя: dateTimeConnect
Таблица: dbo.CDR
Время хранится в секундах, прошедших с 1970 года. Например, 1523450956
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724416
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmЗа текущий день:
Код: sql
1.
2.
[колонка с временем в формате unixtimestamp] >= datediff(second, '1970', cast(getdate() as date)) and
[колонка с временем в формате unixtimestamp] < datediff(second, '1970', dateadd(day, 1, cast(getdate() as date)))


За месяц сделаете сами по аналогии.Да. Преобразовать добавление секунд к '1970' слева от знака равенства
к разнице в секундах между '1970' и датой справа от знака равенства - это очень правильно.
Если по юниксовой колонке есть индекс, конечно.
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724419
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений.iapпропущено...
Что за колонка? Какого типа?
Да и как поле называется и таблица? Хотя бы.

Примерно так:

Код: sql
1.
2.
WHERE DATEADD(SECOND, колонка, '1970')>=CAST(CURRENT_TIMESTAMP AS DATE)
  AND DATEADD(SECOND, колонка, '1970')<DATEADD(DAY,1,CAST(CURRENT_TIMESTAMP AS DATE))



Код: sql
1.
2.
WHERE DATEADD(SECOND, колонка, '1970')>=DATEADD(MONTH,DATEDIFF(MONTH,0,CURRENT_TIMESTAMP),0)
  AND DATEADD(SECOND, колонка, '1970')< DATEADD(MONTH,DATEDIFF(MONTH,0,CURRENT_TIMESTAMP)+1,0)



Как бы как именно у меня называется не думаю что сильно важно, но вот:
Тип int
Имя: dateTimeConnect
Таблица: dbo.CDR
Время хранится в секундах, прошедших с 1970 года. Например, 1523450956Как оно хранится, тут и так все знают.
Раз сразу имена не написали, - придётся их прописывать в уже данных ответах самому.
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724428
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapКак оно хранится, тут и так все знают.
Раз сразу имена не написали, - придётся их прописывать в уже данных ответах самому.
Народ тут опытный, поэтому и не стал давать тут лишнюю информацию, как колонки называются и т.п.
Но раз уж спросили, то и написал.

За варианты спасибо.

Единственно вопрос.
Предложено 2 варианта, через DATEADD и datediff.
Если оба варианта рабочие, то мне кажется через datediff sql серверу придется делать меньше вычислений и лучше выбрать этот способ?
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724443
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapinvmЗа текущий день:
Код: sql
1.
2.
[колонка с временем в формате unixtimestamp] >= datediff(second, '1970', cast(getdate() as date)) and
[колонка с временем в формате unixtimestamp] < datediff(second, '1970', dateadd(day, 1, cast(getdate() as date)))


За месяц сделаете сами по аналогии.Да. Преобразовать добавление секунд к '1970' слева от знака равенства
к разнице в секундах между '1970' и датой справа от знака равенства - это очень правильно.
Если по юниксовой колонке есть индекс, конечно.
Индексов нет по колонке с временем.
Тогда лучше как тут предложено все вычисления делать справа от знаков сравнения?
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724447
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да просто вычислите 1 раз в переменные и подставте в запрос
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724448
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопросов больше нет.
Все работает.
Спасибо.
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724449
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxxда просто вычислите 1 раз в переменные и подставте в запрос
Хорошая идея. Спасибо.
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724453
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxда просто вычислите 1 раз в переменные и подставте в запросВыражения на основе getdate() и без участия каких-либо столбцов, считаются константными и вычисляются в запросе один раз.
...
Рейтинг: 0 / 0
Помогите сделать запрос с unixtimestamp
    #39724457
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invmMaxxда просто вычислите 1 раз в переменные и подставте в запросВыражения на основе getdate() и без участия каких-либо столбцов, считаются константными и вычисляются в запросе один раз.
Согласен, иначе бы это был большой косяк.
Но вынести в переменную думаю можно хотя бы для удобочитаемости кода.
Т.к. время у меня понятно что не единственный параметров для выборки и строка запроса довольно большая.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите сделать запрос с unixtimestamp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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