如何解决基于日期的2005年存储过程
| 我可以写存储过程基于日期删除表中的行create proc uspInvoicePaymentsdelete3
@PaymentDate datetime
as
begin
delete from tblInvoicePaymentDetails where PaymentDate=@PaymentDate
end
但是行未删除,我正在发送参数值是\'6/15/2011 3:40:18 PM \',但是在我的sql server2005中它采用24小时格式,因此没有行被删除如何更改日期。(表日期格式和参数日期是相同格式,但存储过程转换为24小时格式)
delete from tblInvoicePaymentDetails where PaymentDate=\'6/15/2011 3:40:18 PM\'
但我的要求是日期时间也要考虑秒针
问题是我发送参数日期和数据库日期都相同,但是输出是没有行被删除什么问题和如何写存储过程
请给我正确的解决方案
Name Date amount id
hemanth 6/15/2011 3:40:18 PM 100 1003
hemanth 6/15/2011 3:40:42 PM 100 1003
谢谢你
灵长类
解决方法
该问题可能与以下事实有关,正如@Andrew在他对问题的评论中指出的那样,表中的日期时间值也包含毫秒,而您传递的值中不包含毫秒。
如果是这样,则可以这样更改DELETE语句的WHERE子句:
WHERE PaymentDate >= @PaymentDate
AND PaymentDate < DATEADD(second,1,@PaymentDate)
但是请注意,这可能导致删除多个行。例如,您具有以下数据:
Name PaymentDate amount id
------- ----------------------- ------ ----
… … … …
hemanth 2011-06-15 15:40:18.550 100 1003
hemanth 2011-06-15 15:40:18.987 100 1003
hemanth 2011-06-15 15:40:42.363 100 1003
… … … …
如果忽略毫秒,则此处有两行具有相同的PaymentDate
值。也许,这种情况对于您的应用程序是不可能的,因此您不必为此担心。我只是想确保您知道,从技术上讲,当您使用不完整的日期/时间值作为参数时,可以删除多个记录。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。