SQL中也可以用格式字符串定制日期转字符串

这篇论坛文章(赛迪网技术社区)介绍了SQL Server利用格式字符串定制日期转换为字符串的具体方法,更多内容请参考下文:

在C#中用惯了DateTime.ToString("yyyy-MM-dd"),DateTime.ToString("MM/dd/yyyy")这种日期与字符串的转换方式,在SQL server中没得用,于是乎写了个FUNCTION,功能跟.net 中的DateTime.ToString("formatprovide")方法差不多,不过只实现了日期部分,有兴趣的朋友可以把时间部分补充出来。

create function fn_DateToString(@date datetime, @format varchar(20))
returns varchar(20)
as
begin
declare @result varchar(20)
select @result = (replace(replace(replace(@format,'yyyy','20'+substring(convert(char(8),@date,3),7,2)),'MM',substring(convert(char(8),@date,3),4,2)),'dd',substring(convert(char(8),@date,3),1,2)))
return @result
end

使用:

select dbo.fn_datetostring(getdate(),'yyyy-MM-dd')

得到结果:2005-07-12

时间: 2024-12-11 01:27:03

SQL中也可以用格式字符串定制日期转字符串的相关文章

db2-DB2数据库字符串转日期

问题描述 DB2数据库字符串转日期 BD2字符串为'20090101'转换为日期类型'2009-01-01'的语句怎么写,只要日期,不要时间 解决方案 DB2中有关日期和时间的函数,及应用(转)

含有日期的字符串转化成List<history>

问题描述 含有日期的字符串转化成List<history> 就是这个字符串: [{actiontype=选择, cname=演讲与口才社, actiontime=2016-05-04 21:28:06.0}, {actiontype=退选, cname=演讲与口才社, actiontime=2016-05-04 21:38:41.0}] 请问该怎么转化成List,history是包含actiontype.cname.actiontime的自定义数据类. 我原本是这样做的,没有日期正确,有日期出

Caused by: java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配

          项目中遇到这样一个问题:                 Caused by:java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配 atoracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) atoracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) atoracle.jdbc.

sqlbulkcopy-使用SqlBulkCopy时,无法将TXT中的时间字符串转换为SQL中的Datetime类型

问题描述 使用SqlBulkCopy时,无法将TXT中的时间字符串转换为SQL中的Datetime类型 今日在做项目中用到中转文件缓存的思路来想服务器传送数据,第一次使用SqlBulkCopy,但是遇到了问题:在将TXT文件中的数据复制到sql中时,第一列的时间总是提示格式不对,vs提示无法将第一列的字符串转换为DateTime格式,请各位高手支招,谢谢!!!连续加班十多天了,任务紧急,希望各位能给提出宝贵意见. 在每个TXT文件中的,每一行数据是这样存放的: 2014-07-22 00:14:

SQL导入txt以及SQL中的时间格式操作

原文:SQL导入txt以及SQL中的时间格式操作 MySQL中导入txt的指令为: load data local infile "路径名称" into table "表名" 比如我文件的具体位置为"f:\\dataset\\beijing\\xx.txt",创建的表名为"person",则上述指令的具体表达为: load data local infile "f:\\dataset\\beijing\\xx.txt

在SQL中获取一个长字符串中某个字符串出现次数的实现方法

以下是对在SQL中获取一个长字符串中某个字符串出现次数的实现方法进行了详细的分析介绍,需要的朋友可以参考下   在SQL中获取一个长字符串中某个字符串出现次数的实现方法 比如有个字符串: X-BGS-2010-09-15-001 我想知道其中'-'出现的次数,可以用下面的方法实现,而不需要复杂的一个个字符分析. declare @a varchar(100) set @a='X-BGS-2010-09-15-001' select len(replace(@a,'-','--'))-len(@a

SQL中采用Newtonsoft.Json处理json字符串

原文 SQL中采用Newtonsoft.Json处理json字符串 使用环境:       SQL Server2005;       VS2010;       关于SQL中部署CLR程序集的方法,网上一搜一大把,需要了解的自行查阅,呵呵.       SQL中处理字符串实在是太弱了,连数组都不能处理,就更别说json字符串了,好吧,它不能处理,我就给它加个处理程序集(还好2005已经加入了这个功能).       首先对于CLR我也不太懂,而且到现在我也没搞懂怎么把一个dll注册到SQL,俺

文件下载-C#将文件写入SQL中再读取,.docx格式有问题

问题描述 C#将文件写入SQL中再读取,.docx格式有问题 C#上传下载代码中,将上传文件内容以二进制保存到SQL中,下载的时候doc和pdf没问题,docx会有文件损坏,截图如下: 但是文件确认后还是能打开并没有问题,想请教一下这个问题怎么解决~ 解决方案 文件超长或者编码有问题,文件不完整用word打开往往就是报错,但是可以打开. 建议你下载下来文件和原始文件用windiff比较下,看看是不是文件不完整或者中间有错误. pdf doc不报错也不见得就是正确,只是说它们对数据的验证不是很严格

SQL点滴33—SQL中的字符串操作

原文:SQL点滴33-SQL中的字符串操作 计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower('I AM A STUDENT !') select upper('i am a student !') 截去字符串左.右侧空格