1

我们刚刚从 2005 年升级到 SQL Server 2012。虽然我是新手,但这么简单的事情不可能这么难。我曾经能够根据日期与日期和时间从表中提取数据。就目前而言,我有:

Select * from receipts_table where receipt_cancel_date = '2013-09-20'

在我们升级之前,这可以正常工作。我如何运行它并实际获得所需的结果,因为我知道有取消日期为 2013 年 9 月 20 日的收据。

谢谢

4

1 回答 1

1

如果您为日期参数传递字符串,最好的格式是 ISO ( yyyymmdd) 格式。否则,即使您的字符串在某些服务器上工作,它也可能无法在另一个服务器上工作,具体取决于服务器的文化。ISO format is culture independent.

receipt_cancel_date还可以通过将其转换为 DATE(如果是 DATETIME)从列中删除时间部分以进行比较。

试试这个:

Select * from receipts_table 
where convert(date, receipt_cancel_date) = convert(date,'20130920')

或者在您的格式中使用120 样式

Select * from receipts_table 
where convert(date, receipt_cancel_date) = convert(date,'2013-09-20',120)
于 2013-10-03T17:32:37.007 回答