您的位置:首页 > 游戏 > 手游 > 网站推广方法有哪些_重庆市人民政府网首页_谷歌浏览器网页版入口在哪里_最新疫情最新数据

网站推广方法有哪些_重庆市人民政府网首页_谷歌浏览器网页版入口在哪里_最新疫情最新数据

2025/4/18 17:56:07 来源:https://blog.csdn.net/wzcool273509239/article/details/147221539  浏览:    关键词:网站推广方法有哪些_重庆市人民政府网首页_谷歌浏览器网页版入口在哪里_最新疫情最新数据
网站推广方法有哪些_重庆市人民政府网首页_谷歌浏览器网页版入口在哪里_最新疫情最新数据

Json函数(Transact-SQL)适用于SQL Server2016(13.x)及更高版本,13.x以下的版本没有提供Json类型的格式化读取操作。

如果你本地的SQL Server数据库是2016 v13.x及以上版本,可直接参考如下链接的JSON函数:

JSON 函数 (Transact-SQL)

此处利用Substring和CHARINDEX提供简单的截取方式解析Json数据,数据库是SQL Server 2014。

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )

expressionToFind
一个字符表达式,其中包含要查找的序列。 expressionToFind 限制为 8000 个字符 。

expressionToSearch
要搜索的字符表达式。

start_location
表示搜索开始位置的 integer 或 bigint 表达式 。 如果 start_location 未指定、具有负数值或 0,搜索将从 expressionToSearch 的开头开始 。

SUBSTRING ( expression, start, length ) 

expression
为 character、binary、text、ntext 或者 image 表达式。

start
指定返回字符的起始位置的整数或 bigint 表达式 。 (编号从 1 开始,意味着表达式中的第一个字符为 1)。 如果 start 小于 1,则返回的表达式的起始位置为表达式中指定的第一个字符 。 在这种情况下,返回的字符数是后两者中的较大值:start + length 之和减去 1,0。 如果 start 大于值表达式中的字符数,将返回一个零长度的表达式 。

length
是正整数或用于指定要返回的 expression 的字符数的 bigint 表达式 。 如果 length 是负数,会生成错误并终止语句 。 如果 start 和 length 的总和大于表达式中的字符数,则会返回从 start 开始的整个值表达式 。

Json格式:

{"companyId":1,"creditAgreementIds":[4122],"startDate":"12/06/2024","endDate":"12/27/2024"}

数据表结构和数据初始化实例。


declare  @TestJsonExtract table(Id int, JsonColumn nvarchar(max))insert into @TestJsonExtract(Id,JsonColumn) values(1,'{"companyId":1,"creditAgreementIds":[4122],"startDate":"12/06/2024","endDate":"12/27/2024"}')
insert into @TestJsonExtract(Id,JsonColumn) values(2,'{"companyId":1,"creditAgreementIds":[4122,123456,7890],"startDate":"01/06/2025","endDate":"04/14/2025"}')

获取StartDate和EndDate

--定义Key
declare @StartDate varchar(50)='"startDate":"'
declare @EndDate varchar(50)='"endDate":"'
select StartDate=CONVERT(DATETIME,SUBSTRING(JsonColumn,CHARINDEX(@StartDate,JsonColumn)+len(@StartDate),10))
,EndDate=CONVERT(DATETIME,SUBSTRING(JsonColumn,CHARINDEX(@EndDate,JsonColumn)+len(@EndDate),10))
,DayDiff=DATEDIFF(DAY,CONVERT(DATETIME,SUBSTRING(JsonColumn,CHARINDEX(@StartDate,JsonColumn)+len(@StartDate),10)),CONVERT(DATETIME,SUBSTRING(JsonColumn,CHARINDEX(@EndDate,JsonColumn)+len(@EndDate),10))
)from @TestJsonExtract 

输出结果:

StartDateEndDate                                    DayDiff
2024-12-06 00:00:00.0002024-12-27 00:00:00.000 21
2025-01-06 00:00:00.0002025-04-14 00:00:00.00098

                            

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com