2013-03-05 52 views
-2

我有一个有2列的表,EffectiveBeginDate和EffectiveEndDate。但是,它们的编号为YYYYMMDD格式,例如:在SQL中的日期编号where语句

代理| EffectiveBeginDate | EffectiveEndDate

John Doe | 20080922 | 20080924

马克史密斯| 20100922 | 20110226

等等

我需要做2件事。首先,我需要一个公式来将EffectiveBegin/End日期更改为我的Select语句中的实际日期格式。

更重要的是,我需要能够在我的WHERE语句来查询此列,如果他们acutal日期B/C where子句将是这样的:

凡EffectiveStartDate之间的'01/01/2010'和'01/31/2010'

想法?

+2

是否使用的是DBMS:

对于数字日期,使用它? – 2013-03-05 19:07:11

+0

谷歌请... – mohammedn 2013-03-05 19:08:58

+0

SQL Server管理工作室 – Joshua 2013-03-05 19:16:32

回答

0

在SQL SERVER中,当dateTimeField的格式为“yyyymmdd”时,执行CONVERT(DATETIME, dateTimeField)就足够了。

更新: CONVERT(DATETIME, CONVERT(char(8),dateTimeField))

+0

谢谢。当我说他们是YYYYMMDD格式时,我的意思是他们的数字格式是这样的,而不是实际的日期。因此,如果我要执行Convert(datetime,datetimefield),则会出现算术溢出错误 - 将表达式转换为数据类型datetime的算术溢出错误。 – Joshua 2013-03-05 19:15:47

+0

@Joshua:回复更新 – 2013-03-05 19:18:57

+0

感谢pieter,我能够得到这个工作。 – Joshua 2013-03-05 19:21:05