在我的存储过程中,我有一个 StartDate 和 EndDate 字段在 Varchar(10) 中
@StartDate Varchar(10),
@EndDate Varchar(10)
我正在从 UI 中输入开始日期为 03/01/2013 和 03/04/2013
对于结束日期,我需要添加一天 + 也就是说,如果我的结束日期是 03/04/2013,我需要将其更新为 03/05/2013..
谢谢
最佳答案
如果这是一个新的存储过程(或没有使用它的任何其他代码),最好的办法是将变量更改为 Date 类型。因为如果您按日期比较数据
您应该比较 日期而不是 varchar 值
。
如果您CAN
更改变量类型,那么您可以使用 DATEADD()
函数添加一天,如下所示。
--if @enddate is a date type
select @enddate = dateadd(day,1,@enddate)
如果您不能
更改变量类型,您最好以ISO 格式
(即yyyymmdd
)传递它们,因为您当前的字符串格式是culture specific 和 query 在具有不同文化的服务器中可能会失败。
--date pass as yyyymmdd (not culture specific)
select @enddate = convert(varchar(10),
dateadd(day, 1, convert(date, @enddate)), 101)
--date pass as mm/dd/yyyy (US culture)
select @enddate = convert(varchar(10),
dateadd(day, 1, convert(date, @enddate,101)), 101)
关于sql - 如何将日期时间字段添加到 + 1 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15207811/