SQL Server-使用SQL删除日期范围之间的行。日期转换失败

SQL Server-使用SQL删除日期范围之间的行。日期转换失败,sql,sql-server,sql-server-2008,datetime,sql-delete,Sql,Sql Server,Sql Server 2008,Datetime,Sql Delete,这是我写的DELETE语句。有一个错误显示: 从字符串转换日期和/或时间时,转换失败 我知道我必须写正确的日期格式,但我不知道该怎么写 这个问题没有在其他地方得到回答,因为我看到的答案没有指定日期格式(在我要求的上下文中)你在2月31日写的。。。大概那个日期不存在 DELETE FROM BIZ WHERE [Orgnl_Cmpltn_Date] BETWEEN '2014-02-31' AND '2014-04-01' 关于转换日期的一般概念: DELETE FROM BIZ

这是我写的
DELETE
语句。有一个错误显示:

从字符串转换日期和/或时间时,转换失败

我知道我必须写正确的日期格式,但我不知道该怎么写


这个问题没有在其他地方得到回答,因为我看到的答案没有指定日期格式(在我要求的上下文中)

你在2月31日写的。。。大概那个日期不存在

DELETE FROM BIZ 
WHERE [Orgnl_Cmpltn_Date]
      BETWEEN '2014-02-31'  AND '2014-04-01'
关于转换日期的一般概念:

DELETE FROM BIZ 
WHERE [Orgnl_Cmpltn_Date]
BETWEEN '2014-02-28'  AND '2014-04-01'
在这里,您可以找到
CONVERT

我假设您使用的是SQL Server,请尝试此

DELETE FROM BIZ 
WHERE [Orgnl_Cmpltn_Date]
BETWEEN CONVERT(date,'2014.02.28',102) and CONVERT(date,'2014.04.01',102)
用这个代替

    DELETE FROM BIZ 
    WHERE CONVERT(DATE,[Orgnl_Cmpltn_Date])
    BETWEEN CONVERT(DATE,'2014-02-28') AND CONVERT(DATE,'2014-04-01')
从业务中删除
其中[Orgnl\U Cmpltn\U Date]>='2014-02-28'
还有一些事情

1) 没有2月31日这样的日期,这可能是个问题

2) 如果您将日期范围设置为以下格式,您可能会更幸运:

DELETE FROM BIZ
WHERE [Orgnl_Cmpltn_Date] >= '2014-02-28'
AND [Orgnl_Cmpltn_Date] <= '2014'04'01'

让我知道您是如何上车的:-)

您可以使用以下代码:

BETWEEN '20140228'  AND '20140401'

这是用于哪个RDBMS的?请添加一个标记,以指定您使用的是
mysql
postgresql
sql server
oracle
还是
db2
-或其他完全相同的内容。如果出现错误文本,我强烈怀疑这是,但是OP最好先确认这一点。2月31日不存在……也不要在日期范围内使用中间日期,这样太危险了。您是否打算删除任何日期为“2014-04-01”的记录,或者是否应保留这些记录?如果存在像“2014-04-01 23:58:12.1234567”这样的值,会发生什么?哇!谢谢Galma88。你是一个天才。那个日期不存在。这确实有效。非常感谢。出于将来的考虑,我如何指定您使用的RDBMS的日期格式?这对于mssql来说是一种很好的日期文字格式,但对于其他dbms来说不是,而这段代码可能会回答这个问题,提供有关此代码回答问题的原因和/或方式的其他上下文可提高其长期价值。请确保您的答案比此问题中已有的其他答案更好。
DELETE from Tabel_Name WHERE Date BETWEEN CONVERT(datetime,'01/01/2001',103) and CONVERT(datetime,'31/12/2001',103)