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 ...

Экономьте время в секундах, сохраняйте в int или bigint

Другие вопросы по тегам