T-SQL 存储过程

T-SQL Stored Procedure

我正在尝试理解我的 Uni 项目的这段代码。

由于我是使用存储过程的新手,您能帮帮我吗?

SET @SQL = @SQL + CHAR(13)   +  'DELETE fROM  table_name WHERE [Date]  ='''+ CONVERT(varchar, @DATE, 120) + ''';'

我不清楚这里单引号的用法。

谢谢

字符串中的

'' 是单引号的转义序列。所以添加到 @SQL 字符串的内容最终看起来像这样:

DELETE FROM table_name WHERE [Date] = 'SomeDateHere';

我得查一下 120 是什么日期格式。某些格式的日期可以在 SQL 服务器中隐式转换。例如这是有效的:

DELETE FROM table_name WHERE [Date] = '2015-04-09';

提示一下,字符串的转换可能因区域设置而异。将字符串用于日期时,如果您使用不带破折号的 YYYYMMDD 格式,无论区域设置如何,它似乎都能正确转换。我总是使用那种格式。让生活更简单。要包括您使用的时间,例如:

'20150409 09:44:00.000'

这降低了混淆月份和日期等的风险:)