SQL-оператор для выбора всех строк с предыдущего дня

Короткий ответ: потому что C быстр. Как в, ослепительно смехотворно сумасшедший быстрый . Язык просто не должен быть 'медленным' для получения его задней части, врученной ему C.

причина, почему C быстр, состоит в том, что он был создан действительно великими кодерами, и gcc был оптимизирован в течение пары большего количества десятилетий и десятками более блестящих кодеров, чем 99% языков там.

Короче говоря, Вы не собираетесь побеждать C за исключением специализированных задач, которые требуют очень определенных конструкций функционального программирования.

106
задан 3 revs, 2 users 67% 1 October 2009 в 13:21
поделиться

3 ответа

получить сегодня нет времени:

SELECT dateadd(day,datediff(day,0,GETDATE()),0)

получить вчера нет времени:

SELECT dateadd(day,datediff(day,1,GETDATE()),0)

запрос для всех строк только вчера:

select 
    * 
    from yourTable
    WHERE YourDate >= dateadd(day,datediff(day,1,GETDATE()),0)
        AND YourDate < dateadd(day,datediff(day,0,GETDATE()),0)
191
ответ дан 24 November 2019 в 03:47
поделиться

Чтобы получить значение «сегодня» в SQL:

convert(date, GETDATE())

Чтобы получить «вчера»:

DATEADD(day, -1, convert(date, GETDATE()))

Чтобы получить «сегодня минус X дней»: измените -1 на -X.

Таким образом, для всех вчерашних строк вы получите:

select * from tablename
   where date >= DATEADD(day, -1, convert(date, GETDATE()))
   and date < convert(date, GETDATE())
39
ответ дан 24 November 2019 в 03:47
поделиться

Невозможно проверить это прямо сейчас, но:

select * from tablename where date >= dateadd(day, datediff(day, 1, getdate()), 0) and date < dateadd(day, datediff(day, 0, getdate()), 0)
4
ответ дан 24 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: