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'
这降低了混淆月份和日期等的风险:)
我正在尝试理解我的 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'
这降低了混淆月份和日期等的风险:)