format在SqlServer2008不支持解决办法

文章讲述了在将项目部署到2008版本服务器时遇到的SQL格式错误,因为2008不支持format函数。作者提供了将format函数替换为使用CONVERT和SUBSTRING函数的方法,以适应2008版本的SQL语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题描述

项目部署到服务器上运行,sql报错format不支持。

二、问题查询

在开发时使用数据库为2012版本,项目部署的服务器使用2008版本。经网上查询2012版本才开始支持的format函数,2008只能使用CONVERT函数来解决。

三、解决思路

在项目sql中使用format(日期,"MM-dd“)将时间格式化成 月-日 的形式,在2008版本中修改为SUBSTRING(CONVERT(VARCHAR(20),日期,23),6,5),其中CONVERT(VARCHAR(20),日期,23)表示将日期格式化为编号23的样式,23样式为 yyyy-mm-dd ,其它编号可参考官方给出的文档(传送门)。
然后使用SUBSTRING函数,截取所需要的 mm-dd部分。

参考sql:

select
 SUBSTRING(CONVERT(VARCHAR(20),login_time,23),6,5) login_time
from sys_logininfor 
where login_time>dateadd(day, -30, GETDATE()) 
GROUP BY SUBSTRING(CONVERT(VARCHAR(20),login_time,23),6,5)  
order by SUBSTRING(CONVERT(VARCHAR(20),login_time,23),6,5) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我乃世间蓬蒿人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值