在动态SQL

时间:2015-11-12 21:39:10

标签: sql sql-server escaping

我花了一些时间搜索,但未能找到适用于我的情况的答案。

基本上,我有一个datetime变量,我试图格式化为MM / dd / yyyy。这是我正在使用的声明:

FORMAT(openDate, ''''MM\/dd\/yyyy'''')

额外的'是由于我写的字符串是在另一个字符串内。我相信那个数字是多少?这个陈述不起作用

ISNULL(openDate, ''''N/A'''')

但我的回报看起来像是将日期时间转换为int。

如果我这样做:

FORMAT(openDate, ''''MM\/dd\//yyyy'''')

然后我的回报看起来像

03/29//2002

我是否错误地使用了逃脱?为什么我可以在一个月和一天之间获得一个,但不是在一天和一年之间?非常感谢任何建议,谢谢!

编辑:发现我的问题在excel中。我在12/5/2005给它一个日期,它把它当作分工。谢谢大家的回复。

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

DECLARE @date DATE = '20151113'
SELECT FORMAT(@date, 'MM/dd/yyyy')

结果:

13/11/2015