sql - 如何将日期时间字段添加到 + 1 天

在我的存储过程中,我有一个 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)

https://stackoverflow.com/questions/15207811/

相关文章:

string - 一组字符串的 R 直方图和描述性统计数据

bash - 如何从 Bash 中的域获取主 MX IP

unix - 输出 shell 脚本到日志文件

sql - "column ambiguously defined"

java - 如何在其他计算机上运行java可执行文件

performance - 如何减少此 Google Apps 脚本的执行时间?

vbscript - SystemUtil.Run 在 vb 脚本中不起作用

php - 通知 : unserialize() for symfony2 ( connection

django - 如何为多个 View 设置 cookie?

solr - 从 DocsAndPositionsEnum 检索所有术语位置