Dot-Net
在 SQL 數據庫中儲存沒有年份的日期的最佳方法是什麼?
我正在建構一個應用程序,該應用程序具有應儲存在數據庫中的每日報價。每個報價都分配有一年中的一天,包括 2 月 29 日的一天。由於報價只關心日期而不是年份,我還應該使用 smalldatetime 類型嗎?請大家發表意見,謝謝!!
如果您需要保留日期和月份數據,您不妨使用
SmallDateTime並簡單地忽略年份組件(或將其設置為全面相同的值,例如 2000 年是閏年,因此允許閏日) .您仍然可以使用具有正確數據類型的正確日期和時間函式,並且如果您使用 VARCHAR 欄位,您最終將在它之間進行轉換。
我不禁感到,如果日曆是由軟體工程師發明的,閏日將是 12 月 32 日而不是 2 月 29 日。這樣你就可以簡單地使用從 1 月 1 日開始的 smallint 偏移量。
您仍然可以使用從 3 月 1 日開始的 smallint 偏移量,其中 3 月 1 日為 0,3 月 2 日為 1,2 月 29 日為 365。但是它涉及到對您想要的數字進行某種自定義轉換,並且可能不會像您那樣排序喜歡。
鑑於您可以將 Day 和 Month 儲存為佔用相同空間的兩個 tinyint,我不確定這是否是一個好計劃,但我想為了完整起見我會提到它。