0

我正在开发一个项目,我希望我的日期格式为dd/mm/yyyy(印度格式/英国格式)。在我的数据库表中,我为此字段使用了字符串数据类型。

我有 2 个字段 In_date 和 Out_date 通过这些我计算 Total_days。

现在我想以天计算这两个日期之间的差异。SQL Server 的默认格式是mm/dd/yyyy. 每当我执行

select Datediff(DAY, 'In_date', 'Out_date') from Table;

它给了我错误从/到字符串转换日期时出错。但是当我执行

select Datediff(DAY, '05/28/2013', '05/26/2013') from Table;

它给了我完美的答案。

请帮忙。

4

5 回答 5

2

您应该只在数据库中将日期存储为DateTimes。这将允许您正确比较日期。格式化应该在您的应用程序层中处理。

于 2013-05-28T12:55:35.270 回答
1

试试这个——

SET DATEFORMAT mdy
SELECT DATEDIFF(DAY, '05/28/2013', '05/26/2013')

但希望使用 ISO 日期格式(ymd):

SELECT DATEDIFF(DAY, '20130528', '20130526')
于 2013-05-28T12:57:34.193 回答
1

尝试这个 :

SET DATEFORMAT dmy;

select Datediff(DAY, In_date, Out_date) from Table;
于 2013-05-28T13:20:50.447 回答
0

它试图将列名转换为日期,但它们不是日期。从 'In_date' 和 'Out_date' 周围删除撇号,它会将它们识别为列而不是字符串。

select Datediff(DAY, In_date, Out_date) from Table
于 2013-05-28T12:57:24.147 回答
0
select Datediff(DAY, In_date, Out_date) from Table;
于 2013-05-28T12:57:48.727 回答