感觉有点怪的一个问题。 不是2个,四那两个字段组合起来是一个primary keyselect max(温度),城市from 表group by 城市 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果查每个城市每天的select max(温度),城市,convert(varchar(10),日期,120) from 表 group by 城市,convert(varchar(10),日期,120) 为什么会有两个primary key呢?------------联合主键 我也是和你想的一样的,但是我总感觉他说可以用子查询做,总感觉不会这么简单再请问一下如何把两个字段组合起来做为一个primary key??? 在表设计界面按住CTRL键选定多个列,然后点击设置主键按钮. if object_id('tb')is not null drop table tbgocreate table tb(ID int ,Name varchar(10) primary key(ID,[Name]))insert tb select 1,'A'insert tb select 1,'B'select * from tbinsert tb select 1,'A'/*ID Name ----------- ---------- 1 A1 B伺服器: 訊息 2627,層級 14,狀態 1,行 1PRIMARY KEY 違反條件約束 'PK__tb__38453051'。無法在物件 'tb' 上插入重複索引鍵。陳述式已經結束。*/ 请问一下,你这句上下两个convert(varchar(10),日期,120)分别代表什么意思呢?还有就是 120在ODBC 规范 yyyy-mm-dd hh:mm:ss 不是都到了hh:mm:ss,如果是要每天的话,那不是应该用101之类的呢? convert(varchar(10),日期,120) 按120格式转换为字串20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff] 取前10位,即为 yyyy-mm-dd CONVERT(nvarchar(10),count_time,121): CONVERT为日期转换函数,一般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到的函数的3个参数,第1个参数为,转换后的大小,第2个为转换日期的字段或函数,第3个为转换的格式,具体如下:0 | 0 or 100 | mon dd yyyy hh:miAM(或PM) 1 | 101 | mm/dd/yy 2 | 102 | yy-mm-dd 3 | 103 | dd/mm/yy 4 | 104 | dd-mm-yy 5 | 105 | dd-mm-yy6 | 106 | dd mon yy7 | 107 | mon dd,yy8 | 108 | hh:mm:ss 9 | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)10 | 110 | mm-dd-yy11 | 111 | yy/mm/dd12 | 112 | yymmdd11| 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制) 14 | 114 | hh:mi:ss:mmm(24小时制)15 | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小时制)16 | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制)具体例子:SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AMSELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16SELECT CONVERT(varchar(100), GETDATE(), 12): 060516SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AMSELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AMSELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700SELECT CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827SELECT CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AMSELECT CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM windowsxp下如何配置sql server 2000的C/S模式? SQL查询分组问题??? 一对多数据库的设计问题 想把一些代码都放到代码表里面,以前没怎么设计过,大家进来说是是怎么设计的? 求助:SQL中关于大文本类型的数据,如音频、视屏如何处理? 多表查询 count 与 distinct 的问题 SQL取出2行或3行或多行之和为一个固定值的问题 如果经常要选择某列等于特定值的数据集,是不是把这些数据放一表好些? 一条比较复杂的统计语句```请高手进 急!!关于select distinct ……语句 access 查询时产生流水号的问题 小弟遇到的一个sql难题
from 表
group by 城市,convert(varchar(10),日期,120)
------------
联合主键
在表设计界面按住CTRL键选定多个列,然后点击设置主键按钮.
go
create table tb(ID int ,Name varchar(10) primary key(ID,[Name]))
insert tb select 1,'A'
insert tb select 1,'B'
select * from tb
insert tb select 1,'A'
/*ID Name
----------- ----------
1 A
1 B伺服器: 訊息 2627,層級 14,狀態 1,行 1
PRIMARY KEY 違反條件約束 'PK__tb__38453051'。無法在物件 'tb' 上插入重複索引鍵。
陳述式已經結束。
*/
20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff] 取前10位,即为 yyyy-mm-dd
(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到的函数的3个参数,第1个参数为,转换后的大小,第2个为转换日期的字段或函数,第3个为转换的格式,具体如下:
0 | 0 or 100 | mon dd yyyy hh:miAM(或PM)
1 | 101 | mm/dd/yy
2 | 102 | yy-mm-dd
3 | 103 | dd/mm/yy
4 | 104 | dd-mm-yy
5 | 105 | dd-mm-yy
6 | 106 | dd mon yy
7 | 107 | mon dd,yy
8 | 108 | hh:mm:ss
9 | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
10 | 110 | mm-dd-yy
11 | 111 | yy/mm/dd
12 | 112 | yymmdd
11| 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制)
14 | 114 | hh:mi:ss:mmm(24小时制)
15 | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小时制)
16 | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制)
具体例子:
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
SELECT CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM