2016-06-29 2 views
0

Мне нужно сэкономить время (3 дня, 1 месяц, 5 лет и т. Д.).SQL Server CE: как сохранить время?

Datetime похоже на сохранение даты и времени (4/5/14 21:03). Я мог бы сэкономить количество дней как число, но мне хотелось бы сохранить в разных единицах (дни, недели, месяцы ...)

Есть ли способ сделать это?

ответ

1

SQL Dynamic DatePart when using DateDiff

Таким образом, вы, вероятно, застрял с динамическим SQL или с помощью сазе.

В принципе, вам нужно хранить DATEPART и номер применить DATEADD (datepart , number , date) к дате. Разделение одной строки на каждое значение может быть слишком ресурсоемким, поэтому было бы лучше использовать два отдельных поля: char(1) для datepart и 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 ... 
0

Сохранить количество времени в секундах, в магазине в междунар или BIGINT

Смежные вопросы