我有一个SQL服务器存储过程,它接受日期作为输入参数在其中构建查询。所以在定义存储过程时我应该使用哪个数据类型参数。表示使用nvarchar(15)和datetime之间的区别。
1 : create procedure TestProcedure(@startDate datetime)
and
2 : create procedure TestProcedure(@startDate nvarchar(15))
在性能方面我使用datetime而不是varchar是否有任何优势
答案 0 :(得分:6)
是的,始终使用datetime
类型。它更准确。日期时间类型也总是8个字节,因此传输时间小于15个字符。
然后,前端负责处理文化/区域设置问题,例如MDY,DMY或YMD组件字段排序。 (如果数据库是在美国语言环境下运行而用户在英国,'3/4/2009'是指4月3日或3月4日?)
答案 1 :(得分:1)
如果您知道参数只有日期,则使用适当的数据类型会更好,因为它更小,可以更快地进行比较。它还可以防止提供无效值。