SQL:datetime或varchar作为存储过程的参数数据类型

Shy*_*yju 0 sql

我有一个SQL服务器存储过程,它接受日期作为输入参数在其中构建一个查询.所以我应该在定义存储过程时使用哪个数据类型参数.表示使用nvarchar(15)和datetime之间的区别.

1 : create procedure TestProcedure(@startDate datetime)
        and
2 :   create procedure TestProcedure(@startDate nvarchar(15))
Run Code Online (Sandbox Code Playgroud)

是否有任何优势是我在性能方面使用datetime over varchar

dev*_*uff 6

是的,始终使用该datetime类型.它更准确.日期时间类型也始终为8个字节,因此传输时间小于15个字符.

然后,前端负责处理文化/区域设置问题,例如MDY,DMY或YMD组件字段排序.(如果数据库在美国语言环境下运行且用户在英国,那么'3/4/2009'是指4月3日还是3月4日?)