努比亚z17mini有没有nfc手机z17有没有

SQL&给字符串补0
第一种方法:
right('00000'+cast(@count&as&varchar),5)
其中'00000'的个数为right函数的最后参数,例如这里是5,所以有5个0
@count就是被格式化的正整数
right('00000'+cast(dense_rank() over( order by zsbh ) as
VARCHAR(20)),5)
2、declare&@count&int
set&@count&=&0
while&(@count&&&1000)
print&right('00000'+cast(@count&as&varchar),5)
set&@count&=&@count&+1
第二种方法:使用REPLICATE函数,将字串值重复指定的次数。例如:
  REPLICATE('重复',3)  输出结果为:重复重复重复
【&值得注意的是当 integer_expression 值为负值,则返回NULL
因此,补0操作可如下实现:
SELECT&REPLICATE('0',5-len('9'))+'9'&--左边补0,&如&00009
SELECT&'9'&+&REPLICATE('0',5-len('9'))&--右边补0,如&90000
第三种方法:使用stuff函数,删除指定长度的字符,并在指定的起点处插入另一组字符。例如:
第一个字符串 abcdef 中删除从第 2
个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。
SELECT STUFF('abcdef', 2, 3, 'ijklmn')
输出结果为:
aijklmnef。
因此补0操作可如下实现:
stuff('00000',len('00000')-len('123')+1,len('123'),'123')
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。在SQL Server下想把数字(包括浮点型和整型)转换成字符串,保留数据原本的样子或者根据需要转换成另外指定的格式可能就不仅仅是一条CAST(XXXX AS NVARCHAR)这么简单的事情了。
无论是CAST或者CONVERT在转换FLOAT或者REAL类型成为字符串的时候都可能面临一个问题,就是最终的数据会编程科学记数法的形式出现在最终结果集中。而DECIMAL是没有遇到这个问题。
DECLARE @FL AS FLOAT
DECLARE @RL AS REAL
DECLARE @DC AS DECIMAL(18,2)
CAST(@FL AS NVARCHAR) AS FLOAT_BY_CAST,
CONVERT(NVARCHAR, @FL) AS FLOAT_BY_CONVERT,
CAST(@RL AS NVARCHAR) AS REAL_BY_CAST,
CONVERT(NVARCHAR, @RL) AS REAL_BY_CONVERT,
CAST(@DC AS NVARCHAR) AS DECIMAL_BY_CAST,
CONVERT(NVARCHAR, @DC) AS DECIMAL_BY_CONVERT
FLOAT_BY_CAST
FLOAT_BY_CONVERT
REAL_BY_CAST
REAL_BY_CONVERT
DECIMAL_BY_CAST
DECIMAL_BY_CONVERT
------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------
1.23457e+006
1.23457e+006
1.23457e+006
1.23457e+006
(1 row(s) affected)
那么有什么办法可以避免上述情况呢?
一共有3种办法可以在保留原始数据样子的情况下成功转换浮点型数据成为字符串
1)使用STR函数
作为方法之一,它并不是三种方法中最好,原因是STR函数会产生空格补全预定总长度和以0补全预定小数点长度。如果你希望真真实实的原始数据就需要你利用LTRIM清除头部空格和SUBSTRING+PATINDEX清除尾部的0数字串。需要额外的一些工作。
DECLARE @FL AS FLOAT
DECLARE @RL AS REAL
DECLARE @DC AS DECIMAL(18,2)
SELECT STR(@FL,24,8) AS PURE_BY_STR,
REVERSE(SUBSTRING(REVERSE(LTRIM(STR(@FL,24,8))),PATINDEX('%[1-9]%',REVERSE(LTRIM(STR(@FL,24,8)))),LEN(REVERSE(LTRIM(STR(@FL,24,8))))-PATINDEX('%[1-9]%',REVERSE(LTRIM(STR(@FL,24,8))))+1)) AS FLOAT_BY_STR,
REVERSE(SUBSTRING(REVERSE(LTRIM(STR(@RL,24,8))),PATINDEX('%[1-9]%',REVERSE(LTRIM(STR(@RL,24,8)))),LEN(REVERSE(LTRIM(STR(@RL,24,8))))-PATINDEX('%[1-9]%',REVERSE(LTRIM(STR(@RL,24,8))))+1)) AS REAL_BY_STR
PURE_BY_STR
FLOAT_BY_STR
REAL_BY_STR
------------------------ ------------------------ ------------------------
(1 row(s) affected)
2)使用CONVERT/CAST函数先将数据转换成DECIMAL精确值
这种其实和STR有些相似的地方,就是都是把浮点型数据转换成精确值先。它唯一比STR好的地方就是没有前面空格补全的烦恼。可是还是避免不了精确值的以0补全尾部的情况。所以其实它没比STR好到哪去。
DECLARE @FL AS FLOAT
DECLARE @RL AS REAL
DECLARE @DC AS DECIMAL(18,2)
SET @FL = 12345.6
SET @RL = 12345.6
SET @DC = 12345.6
SELECT @FL AS FLOAT_VALUE,
@RL AS REAL_VALUE,
CONVERT(NVARCHAR, CAST(@FL AS DECIMAL(24,8))) AS PURE_FLOAT_BY_STR,
CONVERT(NVARCHAR, CAST(@RL AS DECIMAL(24,8))) AS PURE_REAL_BY_STR,
REVERSE(SUBSTRING(REVERSE(CONVERT(NVARCHAR, CAST(@FL AS DECIMAL(24,8)))),PATINDEX('%[1-9]%',REVERSE(CONVERT(NVARCHAR, CAST(@FL AS DECIMAL(24,8))))),LEN(REVERSE(CONVERT(NVARCHAR, CAST(@FL AS DECIMAL(24,8)))))-PATINDEX('%[1-9]%',REVERSE(CONVERT(NVARCHAR, CAST(@FL AS DECIMAL(24,8)))))+1)) AS FLOAT_BY_CONVT,
REVERSE(SUBSTRING(REVERSE(CONVERT(NVARCHAR, CAST(@RL AS DECIMAL(24,8)))),PATINDEX('%[1-9]%',REVERSE(CONVERT(NVARCHAR, CAST(@RL AS DECIMAL(24,8))))),LEN(REVERSE(CONVERT(NVARCHAR, CAST(@RL AS DECIMAL(24,8)))))-PATINDEX('%[1-9]%',REVERSE(CONVERT(NVARCHAR, CAST(@RL AS DECIMAL(24,8)))))+1)) AS REAL_BY_CONVT
FLOAT_VALUE
REAL_VALUE
PURE_FLOAT_BY_STR
PURE_REAL_BY_STR
FLOAT_BY_CONVT
REAL_BY_CONVT
---------------------- ------------- ------------------------------ ------------------------------ ------------------------------ ------------------------------
(1 row(s) affected)
既然这里用到了REAL,那就顺便说一下FLOAT和REAL这两种数据类型。
从上面的结果可以看到REAL数据在转换过程中已经发生了数据值的变化。由于它自身精度小,相当于FLOAT(24),而默认的FLOAT类型是FLOAT(53),所以FLOAT在数据转换过程中可以避免上面REAL出现的数据发生改变的情况。我建议还是尽量避免使用REAL。
3)使用SQL Server 2012新增加的FORMAT函数
这个是三者我认为最好的选择。四个字:简单利索。
DECLARE @FL AS FLOAT
DECLARE @RL AS REAL
DECLARE @DC AS DECIMAL(18,2)
SELECT FORMAT(@FL,'######.###') AS FLOAT_BY_FORMAT,
FORMAT(@RL,'######.###') AS REAL_BY_FORMAT
FLOAT_BY_FORMAT
REAL_BY_FORMAT
阅读(...) 评论()sql server 关于日期函数(字符转日期,日期格式化) - 王振杰自言自语吧--在路上! - ITeye技术网站
博客分类:
Sql Server 中一个非常强大的日期格式化函数
字符串转日期
Select cast('' as datetime)
日期格式转换
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 AM
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(),: 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 :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 :46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20):
10:57:47
Select CONVERT(varchar(100), GETDATE(), 21):
10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23):
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25):
10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102):
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 :49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111):
Select CONVERT(varchar(100), GETDATE(), 112):
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 :49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120):
10:57:49
Select CONVERT(varchar(100), GETDATE(), 121):
10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? :49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/:49:920AM
常用:
Select CONVERT(varchar(100), GETDATE(),: 10:57:46
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 23): &
浏览 13935
浏览: 126559 次
来自: 上海
明白了,谢谢
共同进步吧 写道inshect 写道 好啊, ...
inshect 写道 好啊,很高兴和你成为朋友。人生不进则退, ...
zhangqi 写道如何学习速记,我也想学!其实还是需要一些死 ...
好啊,很高兴和你成为朋友。人生不进则退,走好每一步才能辉煌的 ...在线格式化美化SQL 在线压缩SQL - aTool在线工具
一款可以格式化SQL的工具,并且提供压缩SQL的功能。
【格式化推荐:】
贴入要格式化或压缩的SQL代码:
SELECT DATE_FORMAT(b.t_create, '%Y-%c-%d') dateID, b.title memo
FROM (SELECT id FROM orc_scheme_detail d WHERE d.business=208
AND d.type IN (29,30,31,321,33,34,,38,39,40,41,42,431,6,47,48,'a',
29,30,31,321,33,34,,38,39,40,41,42,431,6,47,48,'a')
AND d.title IS NOT NULL AND t_create >=
DATE_FORMAT((DATE_SUB(NOW(),INTERVAL 1 DAY)),'%Y-%c-%d') AND t_create
< DATE_FORMAT(NOW(), '%Y-%c-%d') ORDER BY d.id LIMIT 2,10) a,
orc_scheme_detail b WHERE a.id = b.id
点击我复制内容
格式化或压缩之后的XML显示区域
关于在线格式化SQL工具 | Sql Format
Web最初出现的时候,是以静态的当时出现,甚至没有所谓的一个浏览器程序来渲染HTML,当时的Web只是利用网络协议传输的一些文本数据,这些称之为静态网页。
后来出现了动态网页的概念,这是在出现动态语言和脚本,可以按照web格式按照需求来生成不同的数据,展示给大家,这些称之为动态网页,和动态网页一起绑定的还有就是数据库,自然SQL语句是不可少的。
SQL语句是专门用来处理数据库数据的语言,可以通过连排序等各种操作,从数据库服务器中获取想需要的数据。
目前的web系统越来越复杂,相应的数据库表结构也非常复杂,从中获取web上需要展示的数据,也许需要联合好几张表的数据,并对其中的一些数据进行过滤等等,这些都导致SQL语句越来越冗长,本工具的目的就是为了格式化和美化你写的sql语句,已最可读的形式展现给开发者。
推荐功能 / 猜你喜欢 | Suggest
评论 | Comments
公众号: atool-org

我要回帖

更多关于 努比亚z17mini有没有nfc 的文章

 

随机推荐