解讀sql中獲得部分時間的方法_Mssql數據庫教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:解讀SQL的select語句執行順序select 語句執行順序 (7) SELECT (8) DISTINCT (10) TOP_specification select_list (1) FROM left_table (3) join_type JOIN right_table (2) ON join_condition (4) WHERE where_condition (5) GROUP BY group_by_list (6) HAVING having_condition (9) OR
有的時候,我們可能希望按月、按天、按年做一些數據統計,但是,我們實際保存的數據可能是一個很精確的發生時間,可能是到秒。如何根據一個時間之截取其中的一部分就成了問題。有兩個解決方法:
最直接的想法利用DatePart或者Year、Month、Day函數
CAST(
(
STR( YEAR( GETDATE() ) ) + ’/’ +
STR( MONTH( GETDATE() ) ) + ’/’ +
STR( DAY( GETDATE() ) )
)
AS DATETIME
)
如果只要年和月,就省掉前面的。
方法二,利用時間計算函數
例如獲得月
DateAdd(month, DateDiff(month, 0, Coltime), 0)
原理就是數據庫時間值Coltime減掉1900-1-1獲得這期間的月份個數,然后再重新加回1900-1-1。
分享:解讀4個編寫SQL語句需要注意的常識1.盡量不要對列名進行函數處理。而是針對后面的值進行處理 例如wherecol1=-5的效率比where-col1=5的效率要高 因為后面的條件對列值進行了計算。這樣的條件下優化器無法使用索引 而是要針對所有值進行計算之后才能再比較 2.盡量使用和數劇列一樣的值進行操作
相關Mssql數據庫教程:
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數據庫教程-解讀sql中獲得部分時間的方法
。