【问题标题】:Numbers to Dates in SQL Where StatementSQL Where 语句中的数字到日期
【发布时间】:2013-03-05 19:05:51
【问题描述】:

我有一个包含 2 列的表,即 EffectiveBeginDate 和 EffectiveEndDate。但是,它们采用数字 YYYYMMDD 格式,例如:

代理 |有效开始日期 |有效结束日期

约翰·多伊 | 20080922 | 20080924

马克·史密斯| 20100922 | 20110226

等等。等等

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

更重要的是,我需要能够在 where 语句中查询此列,就好像它们是实际日期一样 b/c where 子句将类似于:

EffectiveStartDate 介于 '01/01/2010' 和 '01/31/2010' 之间

想法?

【问题讨论】:

  • 您使用的是哪个 DBMS?
  • SQL Server 管理工作室

标签: sql date format where


【解决方案1】:

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

更新:

对于数字日期,请使用: CONVERT(DATETIME, CONVERT(char(8),dateTimeField) )

【讨论】:

  • 谢谢。当我说它们采用 YYYYMMDD 格式时,我的意思是它们在数字上采用这种格式,而不是实际日期。因此,如果我要进行转换(日期时间,日期时间字段),我会得到一个算术溢出错误 - 将表达式转换为数据类型 datetime 的算术溢出错误。
猜你喜欢
  • 2019-07-15
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
  • 2011-07-13
  • 2015-06-30
相关资源
最近更新 更多