sql server中format函数的yyyyMMddHHmmssffff时间格式兼容旧版sql写法

问题:
博主看到项目脚本,有些地方使用了format函数来把当前日期转换成yyyyMMddHHmmssffff的格式,但在测试环境数据库是sql 2008 r2,是不支持format这个函数的。脚本会报错:

  • ‘format‘ 不是可以识别的 内置函数名称。
  • ‘format‘ is not a recognized built-in function name.

解决方案:
由于低版本的SQL不支持format,例如sql 2008\2005\2000,需要使用其他方法来代替。
博主经过试验,使用了convert函数和replace函数相结合的方式,实现了适配兼容低版本SQL。

脚本:

/*
    作者:zhang502219048
    脚本来源:https://www.cnblogs.com/zhang502219048/p/11225240.html
*/

/*
    sql 2008 / sql 2005 / sql 2000不支持format函数,执行脚本会报错:
    ‘format‘ 不是可以识别的 内置函数名称。
    ‘format‘ is not a recognized built-in function name.
*/
select format(getdate(),‘yyyyMMddHHmmssffff‘)

--改成适配兼容旧版本sql的写法
select replace(replace(replace(replace(convert(varchar,getdate(),25),‘-‘,‘‘),‘ ‘,‘‘),‘:‘,‘‘),‘.‘,‘‘) + ‘0‘

脚本运行结果:

总结:
博主在这里就为大家分享了自己在工作过程中所编写的兼容旧版本SQL生成yyyyMMddHHmmssffff格式时间字符串的方法,如果你也需要可以直接拿来主义应用到实际工作中而不用进行重复构思编程。【转载请注明博文来源:https://www.cnblogs.com/zhang502219048/p/11225240.html

原文地址:https://www.cnblogs.com/zhang502219048/p/11225240.html

时间: 2024-11-18 05:51:40

sql server中format函数的yyyyMMddHHmmssffff时间格式兼容旧版sql写法的相关文章

SQL Server中getdate()函数的时间格式设置

Sql Server 中一个非常强大的日期格式化函数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

SQL Server中COALESCE函数的用法

在SQL Server中COALESCE函数,会返回其参数中第一个不为NULL的参数,效果如下: SELECT COALESCE(NULL,NULL,N'A',NULL,NULL) 结果: SELECT COALESCE(NULL,NULL,N'A',N'B',N'C',NULL) 结果: 使用COALESCE函数时要注意,其参数必须是相同的类型,例如下面的例子中COALESCE函数的参数中,既有字符串类型又有数字类型,就会报错: SELECT COALESCE(NULL,NULL,N'A',N

13 三种方式替换SQL Server中的NULL值(Different ways to replace NULL in Sql Server)

在Sql Server中有三种方式对查询结果中的NULL值进行替换. 如有下面的一张表: 我们可以通过自连接(Self-Join)的方式一张员工名和其对应的经理名的表: SELECT E.[Name],M.[Name] FROM [tblEmployee] AS E LEFT JOIN [tblEmployee] AS M ON E.ManagerId = M.EmployeeId 我们可以看到,Todd对应的Manger为NULL,这说明Todd应该是公司的最高层,他没有经理.但是这样显示很不

SQL Server中自定义函数:用指定的分隔符号分割字符串

2014-11-13 微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期.数学.元数据.字符串等. 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用. 但是对于 特殊字符串的处理,比如:ISBN号 '978-7-5007-7234-7',如果想获取第三个与第四个分割符号之间的数字, 那么SQL 内置函数无法直接做到.这时就需要自定义函数.下面自定义三个函数,用于处理特殊的字符串. 一.按指定符号分割字符串,返回分割后的元素个数 1

SQL Server中,如何查看每个数据库的Owner是哪个SQL Server账户,也就是谁创建的

有时候我们作为SQL Server的DBA,会需要查找每个数据库的Owner是哪个SQL Server账户,也就是谁创建的. 我们可以使用系统存储过程"sys.sp_helpdb",查询到每个数据库的Owner是哪个SQL Server账户: EXEC sys.sp_helpdb 结果如下: 通过查询结果中的owner列,我们就可以知道每个数据库的Owner是哪个SQL Server账户,也就是谁创建的. 原文地址:https://www.cnblogs.com/OpenCoder/p

Sql Server中常用函数replicate

SQL常用函数之三 REPLICATE () 按指定次数重复字符表达式. 语法 REPLICATE ( character_expression, integer_expression) 参数 character_expression 字符数据型的字母数字表达式,或者可以隐式转换为 nvarchar 或 ntext 的其他数据类型的字母数字表达式. integer_expression 可以隐式转换为 int 的表达式.如果 integer_expression 为负,将返回空字符串. 返回值 

SQL Server中Pivot()函数实现动态行转列

一般情况下Pivot()函数中in中只能写死,因为PIVOT()的in中不支持子查询,所以这样的话只能用存储过程来解决: CREATE PROCEDURE InsurancePivot @Foldercode VARCHAR(50), @isY VARCHAR(4) AS BEGIN     DECLARE @ColumnNames VARCHAR(3000) SET @ColumnNames='' SELECT        @ColumnNames = @ColumnNames + '['

SQL Server中字符串函数LEN 和 DATALENGTH辨析

LEN:返回指定字符串表达式的字符(而不是字节)数,其中不包含尾随空格. DATALENGTH:返回用于表示任何表达式的字节数. 示例1:(相同,返回结果都为5): select LEN ('sssss') select DATALENGTH('sssss') 示例2:(不相同,DATALENGTH是LEN的两倍): select LEN(N'sssss') select DATALENGTH(N'sssss') 示例3:(不相同,DATALENGTH是LEN的两倍多,由于LEN计算时不包含尾空

Sql Server 中查询存储过程的修改时间

1.按最近修改排序所有存储过程 SELECT [name], [create_date], [modify_date] FROM [sys].[objects] WHERE [type] = 'P' -- 这里也可以替换为:'U','IF','TR'分别代表用户表,自定义函数,触发器 ORDER BY [modify_date] DESC 2.查询指定存储过程的创建及修改时间 select [name] ,create_date ,modify_date FROM sys.all_objects