C# VS本地Sqlserver 操作笔记
?
1、如何連接本地數據庫
-- string Info = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\PhysicalAssetDB.mdf;Integrated Security=True";string Info = @"Server=(LocalDB)\MSSQLLocalDB;AttachDbFileName=|DataDirectory|\PhysicalAssetDB.mdf;Integrated Security=SSPI;";
SqlConnection _myConn = new SqlConnection(Info);
_myConn.Open();
2、如何獲取新插入的數據的ID
string sql += " SELECT SCOPE_IDENTITY() AS 'maxid';";//sql為原先的數據庫插入語句,注意在加這個語句前不要有分號 SqlCommand mycom = null;if (_IsTransaction)mycom = new SqlCommand(sql, _myConn, _mytran); elsemycom = new SqlCommand(sql, _myConn); object num = mycom.ExecuteScalar(); int insertID = (int)num; mycom.Dispose(); mycom = null;?3、時間戳轉日期格式
SELECT DATEADD(S,1478577120,'1970-01-01 08:00:00');?dateadd函數將某個日期加上一個特定的時間間隔值后返回datetime數據類型的值。
dateadd (datepart,numer,date數據);numer:用于與detepart相加的值。如果指定了非整數值,則將舍棄該值的小數部分。
date數據:一個用于解析為time、date、smalldatetime、datetime、datetime2、或datetimeoffset值的表達式、列表達式、用戶定義的變量或字符串文字。
datepart:時間部分。下節。
select getdate() --輸出 2013-03-09 16:03:59.293 select dateadd(YYYY,10,getdate()) --加了十年 輸出2023-03-09 16:04:36.8934、日期格式轉時間戳
SELECT DATEDIFF(S,'1970-01-01 08:00:00', '2017-03-23 09:04:48');?datediff函數將兩個特定的日期數據相減,得到的結果可以按照detepart指定的格式返回特定的數據。
datediff(datepart,startdate,enddate)執行中將使用enddate減以startdate的值,如果startdate晚于enddate將返回負值。執行結果如果超出整數范圍將提示錯誤。
startdate:一個可以解析為time、date、smalldate、datetime、datetime2或datetimeoffset值的表達式、列表達式、用戶定義的變量或字符串文字。
enddate:一個可以解析為time、date、smalldate、datetime、datetime2或datetimeoffset值的表達式、列表達式、用戶定義的變量或字符串文字。
datepart:時間部分,下節。
select datediff(YYYY,'2011-11-11','2012-12-12') --輸出1 年份相減之后的確是1 select datediff(day,'2011-11-11','2012-12-12') --輸出 397 兩個日期相差的天數 select * from test where datediff(day,Rq,getdate()) = 0 --其中Rq為日期列,此行代碼的意思是什么呢?getdate()減去Rq列的值為0,Rq列的值與今天相減,號數為05、獲取系統當前日期時間
SELECT GETDATE(),GETUTCDATE(),YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE());6、獲取任意時間部分DatePart
datepart( datepart , date數據 ); -- datepart:特定的要返回的數據的格式代碼。 -- date數據:一個可以解析為time、date、smalldatetime、datetime、datetime2或者datetimeoffset值的表達式、列表表達式、用戶定義的變量或字符串文字。Datepart取值
Datepart部分的取值如下表所示:
| 說明 | 取值 |
| 返回年度信息 | Year、YYYY、YY |
| 返回月份信息 | Month、MM、M |
| 返回日期信息 | Day、DD、D |
| 返回周信息 | Week、WK、WW |
| 返回每周星期幾信息 | WeekDay、DW |
| 返回季度信息 | Quarter、QQ、Q |
| 返回一年中第幾天的信息 | DayOfYear、DY、Y |
| 返回小時信息 | Hour、HH |
| 返回分鐘信息 | Minute、MI、N |
| 返回秒信息 | Second、SS、SS |
| 返回毫秒信息 | MillSecond、MS |
?7、時間格式轉字符串
--Style=101時,表示日期字符串為:mm/dd/yyyy格式SELECT CONVERT(datetime,'11/1/2003',101) --結果:2003-11-01 00:00:00.000SELECT CONVERT(varchar,'2003-11-01 00:00:00.000',101) --結果:01/11/2003下面列舉下所有格式
| 0 | Feb 22 2006 4:26PM | 1 | 02/22/06 |
| 2 | 06.02.22 | 3 | 22/02/06 |
| 4 | 22.02.06 | 5 | 22-02-06 |
| 6 | 22 Feb 06 | 7 | Feb 22, 06 |
| 8 | 16:26:08 | 9 | Feb 22 2006 4:26:08:020PM |
| 10 | 02-22-06 | 11 | 06/02/22 |
| 12 | 060222 | 13 | 22 Feb 2006 16:26:08:020 |
| 14 | 16:26:08:037 | 20 | 2006-02-22 16:26:08 |
| 20 | 2006-02-22 16:26:08 | 21 | 2006-02-22 16:26:08.037 |
| 22 | 02/22/06 4:26:08 PM | 23 | 2006-02-22 |
| 24 | 16:26:08 | 25 | 2006-02-22 16:26:08.037 |
| 100 | Feb 22 2006 4:26PM | 101 | 02/22/2006 |
| 102 | 2006.02.22 | 103 | 22/02/2006 |
| 104 | 22.02.2006 | 105 | 22-02-2006 |
| 106 | 22 Feb 2006 | 107 | Feb 22, 2006 |
| 108 | 16:26:08 | 109 | Feb 22 2006 4:26:08:067PM |
| 110 | 02-22-2006 | 111 | 2006/02/22 |
| 112 | 20060222 | 113 | 22 Feb 2006 16:26:08:067 |
| 114 | 16:26:08:067 | 120 | 2006-02-22 16:26:08 |
| 121 | 2006-02-22 16:26:08.080 | 126 | 2006-02-22T16:26:08.080 |
| 127 | 2006-02-22T16:26:08.080 | 130 | 24 ???? 1427 4:26:08:080PM |
| 131 | 24/01/1427 4:26:08:080PM | ? | ? |
?8、獲取數據分組后每組的最后一條數據
ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)row_number() OVER (PARTITION BY COL1 ORDER BY COL2)?表示根據COL1分組,在分組內部根據 COL2排序,而此函數計算的值就表示每組內部排序后的順序編號(組內連續的唯一的)
SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee?
轉載于:https://www.cnblogs.com/mqxs/p/6602046.html
總結
以上是生活随笔為你收集整理的C# VS本地Sqlserver 操作笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UML实践---用例图、顺序图、状态图、
- 下一篇: [2017.3.23]Miller-Ra