我需要从我的代码(VB.NET)中检查表中的特定DateTime值,但我不知道如何将DateTime格式化为字符串。我读到过,如果字符串的格式是日期、时间或日期和时间,SQL Server就会识别它。我的意思是:
'May 15, 2004'
'5/15/2004'
'20040515'
'2004 4 am'SQL Server是否会将这些字符串识别为有效的DateTime值?我很好奇,因为如果我检查表中的实际DateTime值,它们的格式如下:
2/2/2006 3:49:33 PM发布于 2010-07-24 04:58:38
首先不要将日期/时间值放在SQL查询中-使用参数化查询,这样就不需要知道或关心SQL Server解析文字的格式。将占位符放在SQL中,并将值指定为参数集合中的DateTime。
您应该理所当然地使用参数化SQL -它不仅消除了像这样的格式化和解析问题,而且可能更重要的是,它是抵御SQL注入攻击的最有效的武器。
发布于 2010-07-24 04:59:02
如果不使用参数化查询,请使用CAST/CONVERT将字符串显式更改为日期时间:
SELECT CAST('2/2/2006 3:49:33 PM' AS DATETIME)在我的SQL Server 2005上,它返回给我:
2006-02-02 15:49:33.000请注意,SQL Server中的默认日期格式可以不同于您提供的格式。
发布于 2010-07-24 05:00:54
我发现这始终是安全的: YYYY-MM-DD HH:MI:SS
https://stackoverflow.com/questions/3322278
复制相似问题