亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQLSERVER 中datetime 和 smalldatetime類型的作用是什么

發布時間:2021-08-04 16:25:25 來源:億速云 閱讀:154 作者:Leah 欄目:數據庫

今天就跟大家聊聊有關SQLSERVER 中datetime 和 smalldatetime類型的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

datetime 和 smalldatetime 代表日期和一天內的時間的日期和時間數據類型。 Microsoft SQL Server 用兩個 4 字節的整數內部存儲 datetime 數據類型的值。第一個 4 字節存儲 base date (即 1900 年 1 月 1 日)之前或之后的天數。基礎日期是系統參考日期。不允許早于 1753 年 1 月 1 日的 datetime 值。第一個4 字節:1900 年1 月1 日當日為0 ;之前的日期是負數;之后日期是正數。另外一個 4 字節存儲以午夜后3 1/3 毫秒數所代表的每天的時間。 smalldatetime 數據類型存儲日期和每天的時間,但精確度低于 datetime 。 SQL Server 將 smalldatetime 的值存儲為兩個 2 字節的整數。第一個 2 字節存儲 1900 年 1 月 1 日后的天數。另外一個 2 字節存儲午夜后的分鐘數。日期范圍從1900 年 1 月 1 日到 2079 年 6 月 6 日,精確到分鐘。 可以將這兩種類型轉換成float 浮點數, 其中整數部分就是對應的日期字節, 而小數部分是時間相應的比例, 如datetime 的小數部分就是占整天的毫秒數的比例;smalldatetime 的小數部分就是占整天的分鐘數的比例. 因此我們可以直接將這兩種類型的變量和整數、浮點數進行直接的加減。 datetime 從 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和時間數據,精確度為百分之三秒(等于 3.33 毫秒或 0.00333 秒)。如下表所示,把值調整到 .000 、.003 、或 .007 秒的增量。 示例

調整后的示例

01/01/98 23:59:59.999

1998-01-02 00:00:00.000

01/01/98 23:59:59.995,01/01/98 23:59:59.996, 01/01/98 23:59:59.997, 或01/01/98 23:59:59.998

1998-01-01 23:59:59.997

01/01/98 23:59:59.992, 01/01/98 23:59:59.993, 01/01/98 23:59:59.994

1998-01-01 23:59:59.993

01/01/98 23:59:59.990 或01/01/98 23:59:59.991

1998-01-01 23:59:59.990

我們常常需要搜索指定日期范圍內的數據, 比如返回1998-01-01 當天內的數據, 你可能會這樣寫: date >= ‘1998-01-01 00:00:00.000' and date <= ‘1998-01-01 23:59:59.999 ' 根據上面的調整規則, 其實這句語句的實際搜索范圍為: date >= ‘1998-01-01 00:00:00.000' and date <= ‘1998-01-02 00:00:00.000 ' 你會看到這包括了1998-01-02 的數據, 所以最好的正確的搜索語句為: date >= ‘1998-01-01 00:00:00.000' and date < ‘1998-01-02 00:00:00.000 ' smalldatetime 從 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和時間數據精確到分鐘。29.998 秒或更低的 smalldatetime 值向下舍入為最接近的分鐘,29.999 秒或更高的 smalldatetime 值向上舍入為最接近的分鐘。 --returns time as 12:35 SELECT CAST('2000-05-08 12:35:29.998' AS smalldatetime) GO --returns time as 12:36 SELECT CAST('2000-05-08 12:35:29.999' AS smalldatetime) GO 賦值: 上面說了時間的實際格式,我們在給一個時間變量賦值時肯定不會賦一個浮點數給該變量,更多的情況是我們給這個變量賦一個字符串,系統會自動將字符串變成時間格式并保存到數據庫中。若字符格式錯誤,則報錯。根據語言不同,世界上有多種不同的用字符串表示時間方式,我們可以通過 sp_helplanguage 查看不同語言下的缺省時間格式,如簡體中文的時間格式為 ymd ,可以通過 SET DATEFORMAT 來暫時更改這個缺省值。 時間函數 DATEADD :可以對時間類型的指定部分進行加減計算,雖然我們上面說了可以進行直接的加減,但是我們可以更方便的利用這個函數對指定部分,如年月日時分秒等進行加減。我們常常根據一個時間來構造出另外一個時間,比如下個月的今天 , 本月底等等,我們應該也盡量使用 DATEADD 函數來構造,它可以避免一些閏月、年底、月底之類的錯誤,我以前就是根據 DATENAME 來構造的,常常要考慮這些問題。 DATEDIFF :該函數對兩個時間變量對指定部分進行比較計算。此函數不考慮比指定日期部分更高的粒度級別,它只考慮更低級別的部分。對時間的比較應盡量使用本函數。 舉個出錯的例子:返回兩個時間變量的小時差。若使用 DATEPART(HOUR, @T2 - @T1) 就可能會出錯;你應該使用 DATEDIFF(HOUR, @T1, @T2) 。 DATEPART :返回時間變量的指定部分的值。 DATENAME :返回時間變量的指定部分的值,和 DATAPART 不同的是本函數返回的是個字符串類型 GETDATE() 返回本機器的當前時間。 CURRENT_TIMESTAMP 變量與本函數功能相同。 GETUTCDATE() 返回本機器的當前 UTC (格林尼治標準時間)時間。

看完上述內容,你們對SQLSERVER 中datetime 和 smalldatetime類型的作用是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄梅县| 乾安县| 阳江市| 依安县| 略阳县| 凤山市| 南开区| 长兴县| 乌拉特中旗| 大洼县| 海原县| 宜阳县| 霍州市| 雷山县| 合肥市| 宝兴县| 辉南县| 仁化县| 南部县| 宕昌县| 抚宁县| 西丰县| 平湖市| 曲沃县| 瓦房店市| 崇义县| 营山县| 尼玛县| 永寿县| 南木林县| 林周县| 伊通| 周至县| 靖西县| 炎陵县| 嘉善县| 乌鲁木齐市| 类乌齐县| 永兴县| 沙雅县| 商河县|