Короткий ответ: потому что C быстр. Как в, ослепительно смехотворно сумасшедший быстрый . Язык просто не должен быть 'медленным' для получения его задней части, врученной ему C.
причина, почему C быстр, состоит в том, что он был создан действительно великими кодерами, и gcc был оптимизирован в течение пары большего количества десятилетий и десятками более блестящих кодеров, чем 99% языков там.
Короче говоря, Вы не собираетесь побеждать C за исключением специализированных задач, которые требуют очень определенных конструкций функционального программирования.
получить сегодня нет времени:
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)
Чтобы получить значение «сегодня» в 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())
Невозможно проверить это прямо сейчас, но:
select * from tablename where date >= dateadd(day, datediff(day, 1, getdate()), 0) and date < dateadd(day, datediff(day, 0, getdate()), 0)