sql看不懂,求解释 SET @currentYear=CONVERT(DATETIME,@year+'-1-1',120)SET @currentMonth=CONVERT(DATETIME,@year+'-'+@month+'-'+'1',120)希望各位童鞋帮忙解释下,啥意思,本人对sql server不是很了解。学的很烂 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 拼接字符串转换为datetime类型 把日期格式的字符串数据按规定的格式转换成日期时间型这里的120表示将字符串数据 2011-1-1 转换成 yyyy-mm-dd hh:mi:ss这种格式的日期时间类型 CONVERT ( data_type [ ( length ) ] , expression [ , style ] )expression 任何有效的表达式。data_type 作为目标的系统提供数据类型。这包括 xml、bigint 和 sql_variant。不能使用别名数据类型。有关可用数据类型的详细信息,请参阅数据类型 (Transact-SQL)。length nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。对于 CONVERT,如果未指定 length,则默认为 30 个字符。style 数据格式的样式,用于将 datetime 或 smalldatetime 数据转换成字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型),或将已知日期或时间格式的字符数据转换成 datetime 或 smalldatetime 数据;或者是字符串格式,用于将 float、real、money 或 smallmoney 数据转换成字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。如果 style 为 NULL,则返回的结果也为 NULL。日期格式轉換參照http://technet.microsoft.com/zh-cn/library/ms187928%28SQL.90%29.aspx --日期转换参数,值得收藏select CONVERT(varchar, getdate(), 120 )2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')20040912110608select CONVERT(varchar(12) , getdate(), 111 )2004/09/12select CONVERT(varchar(12) , getdate(), 112 )20040912select CONVERT(varchar(12) , getdate(), 102 )2004.09.12其它我不常用的日期格式转换方法:select CONVERT(varchar(12) , getdate(), 101 )09/12/2004select CONVERT(varchar(12) , getdate(), 103 )12/09/2004select CONVERT(varchar(12) , getdate(), 104 )12.09.2004select CONVERT(varchar(12) , getdate(), 105 )12-09-2004select CONVERT(varchar(12) , getdate(), 106 )12 09 2004select CONVERT(varchar(12) , getdate(), 107 )09 12, 2004select CONVERT(varchar(12) , getdate(), 108 )11:06:08select CONVERT(varchar(12) , getdate(), 109 )09 12 2004 1select CONVERT(varchar(12) , getdate(), 110 )09-12-2004select CONVERT(varchar(12) , getdate(), 113 )12 09 2004 1select CONVERT(varchar(12) , getdate(), 114 )11:06:08.177 那个SET @currentYear=CONVERT(DATETIME,@year+'-1-1',120)那个120我知道是yyyy-mm-dd hh:mi:ss(24h),那个里面的'-1-1'是啥意思,谁知道 --日期格式化函数:Select CONVERT(varchar(100), GETDBTE(), 0): 05 16 2006 10:57BM Select CONVERT(varchar(100), GETDBTE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDBTE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDBTE(), 3): 16/05/06 Select CONVERT(varchar(100), GETDBTE(), 4): 16.05.06 Select CONVERT(varchar(100), GETDBTE(), 5): 16-05-06 Select CONVERT(varchar(100), GETDBTE(), 6): 16 05 06 Select CONVERT(varchar(100), GETDBTE(), 7): 05 16, 06 Select CONVERT(varchar(100), GETDBTE(), 8 ): 10:57:46 Select CONVERT(varchar(100), GETDBTE(), 9): 05 16 2006 10:57:46:827BM Select CONVERT(varchar(100), GETDBTE(), 10): 05-16-06 Select CONVERT(varchar(100), GETDBTE(), 11): 06/05/16 Select CONVERT(varchar(100), GETDBTE(), 12): 060516 Select CONVERT(varchar(100), GETDBTE(), 13): 16 05 2006 10:57:46:937 Select CONVERT(varchar(100), GETDBTE(), 14): 10:57:46:967 Select CONVERT(varchar(100), GETDBTE(), 20): 2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDBTE(), 21): 2006-05-16 10:57:47.157 Select CONVERT(varchar(100), GETDBTE(), 22): 05/16/06 10:57:47 BM Select CONVERT(varchar(100), GETDBTE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDBTE(), 24): 10:57:47 Select CONVERT(varchar(100), GETDBTE(), 25): 2006-05-16 10:57:47.250 Select CONVERT(varchar(100), GETDBTE(), 100): 05 16 2006 10:57BM Select CONVERT(varchar(100), GETDBTE(), 101): 05/16/2006 Select CONVERT(varchar(100), GETDBTE(), 102): 2006.05.16 Select CONVERT(varchar(100), GETDBTE(), 103): 16/05/2006 Select CONVERT(varchar(100), GETDBTE(), 104): 16.05.2006 Select CONVERT(varchar(100), GETDBTE(), 105): 16-05-2006 Select CONVERT(varchar(100), GETDBTE(), 106): 16 05 2006 Select CONVERT(varchar(100), GETDBTE(), 107): 05 16, 2006 Select CONVERT(varchar(100), GETDBTE(), 108): 10:57:49 Select CONVERT(varchar(100), GETDBTE(), 109): 05 16 2006 10:57:49:437BM Select CONVERT(varchar(100), GETDBTE(), 110): 05-16-2006 Select CONVERT(varchar(100), GETDBTE(), 111): 2006/05/16 Select CONVERT(varchar(100), GETDBTE(), 112): 20060516 Select CONVERT(varchar(100), GETDBTE(), 113): 16 05 2006 10:57:49:513 Select CONVERT(varchar(100), GETDBTE(), 114): 10:57:49:547 Select CONVERT(varchar(100), GETDBTE(), 120): 2006-05-16 10:57:49 Select CONVERT(varchar(100), GETDBTE(), 121): 2006-05-16 10:57:49.700 Select CONVERT(varchar(100), GETDBTE(), 126): 2006-05-16T10:57:49.827 Select CONVERT(varchar(100), GETDBTE(), 130): 18 ???? ?????? 1427 10:57:49:907BM Select CONVERT(varchar(100), GETDBTE(), 131): 18/04/1427 10:57:49:920BM SET @currentYear=CONVERT(DATETIME,@year+'-1-1',120)某年1月1日120表示以 yyyy-mm-dd hh:mi:ss这种格式显示SET @currentMonth=CONVERT(DATETIME,@year+'-'+@month+'-'+'1',120)某年某月1日120表示以 yyyy-mm-dd hh:mi:ss这种格式显示 select CONVERT(varchar, getdate(), 120 )2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')20040912110608可以详细查询CONVERT函数用法。 各位帮帮忙! 如何选择 所有那些 不是以 0 - 9 a - z A-Z 开头的数据 ??? 求救:日志传送出错!! 服务器: 消息 155,级别 15,状态 1,行 2 'defaultpicture' 不是可以识别的 OPTIMIZER LOCK HINTS 选项。 server6.5中怎样备份一个数据库? 请教如何建立这样的数据库? 数据的批量查询及显示问题 一个复杂的问题 高手帮我看看这条出错信息什么意思? 关于怎么样存储数据库图象的问题,有经典的帖子顶上,谢了! 请问SELECT语句生成编号问题 请教表关联问题!
这里的120表示将字符串数据 2011-1-1 转换成 yyyy-mm-dd hh:mi:ss这种格式的日期时间类型
http://technet.microsoft.com/zh-cn/library/ms187928%28SQL.90%29.aspx
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12select CONVERT(varchar(12) , getdate(), 112 )
20040912select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12其它我不常用的日期格式转换方法:select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004select CONVERT(varchar(12) , getdate(), 108 )
11:06:08select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
--日期格式化函数:
Select CONVERT(varchar(100), GETDBTE(), 0): 05 16 2006 10:57BM
Select CONVERT(varchar(100), GETDBTE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDBTE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDBTE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDBTE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDBTE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDBTE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDBTE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDBTE(), 8 ): 10:57:46
Select CONVERT(varchar(100), GETDBTE(), 9): 05 16 2006 10:57:46:827BM
Select CONVERT(varchar(100), GETDBTE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDBTE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDBTE(), 12): 060516
Select CONVERT(varchar(100), GETDBTE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDBTE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDBTE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDBTE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDBTE(), 22): 05/16/06 10:57:47 BM
Select CONVERT(varchar(100), GETDBTE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDBTE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDBTE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDBTE(), 100): 05 16 2006 10:57BM
Select CONVERT(varchar(100), GETDBTE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDBTE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDBTE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDBTE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDBTE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDBTE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDBTE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDBTE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDBTE(), 109): 05 16 2006 10:57:49:437BM
Select CONVERT(varchar(100), GETDBTE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDBTE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDBTE(), 112): 20060516
Select CONVERT(varchar(100), GETDBTE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDBTE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDBTE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDBTE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDBTE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDBTE(), 130): 18 ???? ?????? 1427 10:57:49:907BM
Select CONVERT(varchar(100), GETDBTE(), 131): 18/04/1427 10:57:49:920BM
SET @currentYear=CONVERT(DATETIME,@year+'-1-1',120)
某年1月1日
120表示以 yyyy-mm-dd hh:mi:ss这种格式显示SET @currentMonth=CONVERT(DATETIME,@year+'-'+@month+'-'+'1',120)
某年某月1日
120表示以 yyyy-mm-dd hh:mi:ss这种格式显示
2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608可以详细查询CONVERT函数用法。