sql server 日期时间与字符串的转换

by admin on 2019年11月18日

一、sql server日期时间函数
图片 1Sql Server中的日期与时间函数 
图片 21.  当前系统日期、时间 
图片 3    select getdate()  
图片 4
图片 52. dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值
图片 6   例如:向日期加上2天 
图片 7   select dateadd(day,2,’2004-10-15′)  –返回:2004-10-17 00:00:00.000 
图片 8
图片 93. datediff 返回跨两个指定日期的日期和时间边界数。
图片 10   select datediff(day,’2004-09-01′,’2004-09-18′)   –返回:17
图片 11
图片 124. datepart 返回代表指定日期的指定日期部分的整数。
图片 13  select DATEPART(month, ‘2004-10-15’)  –返回 10
图片 14
图片 155. datename 返回代表指定日期的指定日期部分的字符串
图片 16   select datename(weekday, ‘2004-10-15’)  –返回:星期五
图片 17
图片 186. day(), month(),year() –可以与datepart对照一下
图片 19
图片 20select 当前日期=convert(varchar(10),getdate(),120) 
图片 21,当前时间=convert(varchar(8),getdate(),114) 
图片 22
图片 23select datename(dw,’2004-10-15′) 
图片 24
图片 25select 本年第多少周=datename(week,’2004-10-15′)
图片 26      ,今天是周几=datename(weekday,’2004-10-15′)

一、sql server日期时间函数

Qt Qdate写入sql server报错:从字符串转换日期和/或时间时,转换失败。
本人小白一个,做学校布置的大作业时遇到这样一个问题:

二、日期格式转换

 1 -- 当前系统日期、时间 
 2 select getdate()
 3 
 4 --dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值
 5 --例如:向日期加上2天
 6 select dateadd(day,2,'2004-10-15')  --返回:2004-10-17 00:00:00.000
 7 
 8 --datediff 返回跨两个指定日期的日期和时间边界数。
 9 select datediff(day,'2004-09-01','2004-09-18')   --返回:17
10 
11 --datepart 返回代表指定日期的指定日期部分的整数。
12 select DATEPART(month, '2004-10-15')  --返回 10
13 
14 --datename 返回代表指定日期的指定日期部分的字符串
15 select datename(weekday, '2004-10-15')  --返回:星期五
16 day(), month(),year() --可以与datepart对照一下
17 
18 select 当前日期=convert(varchar(10),getdate(),120) 
19        当前时间=convert(varchar(8),getdate(),114) 
20 
21 select datename(dw,'2004-10-15') 
22 
23 select 本年第多少周=datename(week,'2004-10-15')
24        今天是周几=datename(weekday,'2004-10-15')
 query.prepare("INSERT INTO Orders(Name,Quantity,Weight,G_Type,Destination,Applicant,S_Date)" "VALUES(:name,:quantity,:weight,:type,:destination,:applicant,:date)"); query.bindValue(":name",ui->NameEdit->text; query.bindValue(":quantity",ui->quanEdit->value; query.bindValue(":weight",ui->WeigEdit->value; query.bindValue(":type",ui->TypeEdit->text; query.bindValue(":destination",ui->DestinEdit->text; query.bindValue(":applicant",Applicant); query.bindValue(":date",QDate::currentDate().toString("yyyy-mm-dd")); query.exec();

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM 
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM 
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 
Select CONVERT(varchar(100), GETDATE(), 12): 060516 
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM 
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47 
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250 
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM 
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006 
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16 
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006 
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006 
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006 
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006 
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006 
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006
10:57:49:437AM 
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006 
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16 
Select CONVERT(varchar(100), GETDATE(), 112): 20060516 
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513 
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547 
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700 
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827 
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427
10:57:49:907AM

二、日期格式转换

结果报错:QODBCResult::exec: Unable to execute statement:
“[Microsoft][ODBC SQL Server Driver][SQL
Server]从字符串转换日期和/或时间时,转换失败。”
实在不知道该怎么办,求大神解答。

函数 参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称
 1 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM 
 2 Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 
 3 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 
 4 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 
 5 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 
 6 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 
 7 Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 
 8 Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 
 9 Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 
10 Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM 
11 Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 
12 Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 
13 Select CONVERT(varchar(100), GETDATE(), 12): 060516 
14 Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 
15 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 
16 Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 
17 Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 
18 Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM 
19 Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 
20 Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47 
21 Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250 
22 Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM 
23 Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006 
24 Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16 
25 Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006 
26 Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006 
27 Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006 
28 Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006 
29 Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006 
30 Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49 
31 Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM 
32 Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006 
33 Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16 
34 Select CONVERT(varchar(100), GETDATE(), 112): 20060516 
35 Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513 
36 Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547 
37 Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49 
38 Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700 
39 Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827 
40 Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM

参数 interval的设定值如下:

 

缩 写(Sql Server) Access 和 ASP 说明
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq 季 1 ~ 4
Month Mm 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh 时0 ~ 23
Minute Mi 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms 毫秒 0 ~ 999
 
函数 参数/功能
GetDate() 返回系统目前的日期与时间
DateDiff(interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd(interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart(interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName(interval,date) 返回日期date中,interval指定部分所对应的字符串名称

 

 

 

 

 

 

 

 

 

 

缩写(Sql Server) Access和ASP 说明
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq q 季 1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms 毫秒 0 ~ 999

 

 

 

 

 

 

 

 

 

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图