SQL Server CE: как сэкономить время?
Мне нужно сэкономить время (3 дня, 1 месяц, 5 лет и т. Д.).
Datetime
кажется, для сохранения даты и времени (5/4/14 21:03). Я мог бы сохранить количество дней как число, но я хотел бы иметь возможность сохранять в разных единицах (дни, недели, месяцы...)
Есть ли способ сделать это?
2 ответа
SQL Dynamic DatePart при использовании DateDiff
Таким образом, вы, вероятно, застряли с динамическим SQL или с помощью оператора CASE.
В принципе, вам нужно сохранить дату и номер, чтобы подать заявку DATEADD (datepart , number , date)
на свидание. Разделение одной строки на каждое значение может потребовать слишком много ресурсов, поэтому лучше использовать два отдельных поля: char(1)
для свидания и smallint
(От -32,768 до 32,767 должно быть достаточно), чтобы число экономило место на диске.
Без пользовательских функций и поддержки динамического SQL в SQL Server Compact единственная возможность реализовать логику, по-видимому, заключается в CASE
заявление:
SELECT
CASE [datepart]
WHEN 'y' THEN DATEADD (yy, [number], [date])
WHEN 'm' THEN DATEADD (mm, [number], [date])
WHEN 'w' THEN DATEADD (ww, [number], [date])
ELSE DATEADD (dd, [number], [date])
END As [New Date]
FROM ...