首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查特定的DateTime

问如何检查特定的DateTime
EN

Stack Overflow用户
提问于 2010-07-24 04:55:05
回答 4查看 4.6K关注 0票数 1

我需要从我的代码(VB.NET)中检查表中的特定DateTime值,但我不知道如何将DateTime格式化为字符串。我读到过,如果字符串的格式是日期、时间或日期和时间,SQL Server就会识别它。我的意思是:

代码语言:javascript
复制
'May 15, 2004'
'5/15/2004'
'20040515'
'2004 4 am'

SQL Server是否会将这些字符串识别为有效的DateTime值?我很好奇,因为如果我检查表中的实际DateTime值,它们的格式如下:

代码语言:javascript
复制
2/2/2006 3:49:33 PM
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-24 04:58:38

首先不要将日期/时间值放在SQL查询中-使用参数化查询,这样就不需要知道或关心SQL Server解析文字的格式。将占位符放在SQL中,并将值指定为参数集合中的DateTime。

您应该理所当然地使用参数化SQL -它不仅消除了像这样的格式化和解析问题,而且可能更重要的是,它是抵御SQL注入攻击的最有效的武器。

票数 5
EN

Stack Overflow用户

发布于 2010-07-24 04:59:02

如果不使用参数化查询,请使用CAST/CONVERT将字符串显式更改为日期时间:

代码语言:javascript
复制
SELECT CAST('2/2/2006 3:49:33 PM' AS DATETIME)

在我的SQL Server 2005上,它返回给我:

代码语言:javascript
复制
2006-02-02 15:49:33.000

请注意,SQL Server中的默认日期格式可以不同于您提供的格式。

票数 2
EN

Stack Overflow用户

发布于 2010-07-24 05:00:54

我发现这始终是安全的: YYYY-MM-DD HH:MI:SS

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3322278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档