【问题标题】:SQL Select Date between Error conversion failedSQL Select Date between Error conversion failed
【发布时间】:2018-12-31 14:06:38
【问题描述】:
我有一列数据类型为date
当我运行以下语句时:
select count(*) as dt from dbo.logs where dateLogged>= '2018-02-01' and dateLogged < ='2018-02-30';
我收到Conversion failed when converting date and/or time from character string.
【问题讨论】:
标签:
sql
sql-server
database
sql-server-2008
【解决方案1】:
select count(*) as dt from dbo.logs where CAST(dateLogged as date) >= '2018-02-01' and CAST(dateLogged as date) < ='2018-02-30';
OR
select count(*) as dt from dbo.logs where CAST(dateLogged as date) BETWEEN '2018-02-01' and '2018-02-30';
【解决方案2】:
“2018-02-30”不是有效日期。将其替换为有效日期并尝试以下查询:
select count(*) as dt from dbo.logs
where cast(dateLogged as date)
between '2018-02-01' and '2018-02-28';
【解决方案3】:
试试这个:->
设置日期格式 dmy
选择 count(*) 作为 dt
来自 dbo.logs
其中 dateLogged>= '01-02-2018' 和 dateLogged
【解决方案4】:
请尝试将 dateLogged 列转换为日期,您有两种选择
Cast(dateLogged as datetime)
或
Convert(varchar(30),'7/7/2011',102)