在SQL QUERY中使用Date之间的日期

时间:2017-04-26 11:45:28

标签: sql sql-server sql-server-2008 datetime between

我正在使用带有Sql Server 2008 R2的vb.net代码 我试图通过使用SQL查询来获取具有2个日期之间的值的所有行: 这是我的陈述中的where条款:

Where (CONVERT(varchar(10), visit_nextVisitDate, 103) between '02/04/2017' AND  '15/05/2017')"

但我总是在同一个月(第4个月)获得所有行。 我试过这个:

WHERE (CAST(dbo.Visits.visit_date AS date) BETWEEN '24/04/2017' AND '02/05/2017')

但是我收到了错误,因为我的日期字段以格式yyyy/mm/dd

保存

如何将SQL日期格式更改为dd/mm/yyyy

1 个答案:

答案 0 :(得分:5)

为什么要使用字符串进行日期比较?这是错误的,错误的,错误的。 (如果使用,请使用ANSI标准格式,YYYY-MM-DD,以便比较正确。)

只需使用日期:

Item item = mDataSet.get(position);
mImageAdapter = new ImageAdapter(mContext, item.getUrlPhotos());
holder.mViewPagerPhotoView.setAdapter(mImageAdapter);
holder.mViewPagerPhotoView.setOffscreenPageLimit(mImageAdapter.getCount() - 1);
holder.mCircleIndicator.setViewPager(holder.mViewPagerPhotoView);

实际上,将Where visit_nextVisitDate between '2017-04-02' AND '2017-05-02' 与日期结合使用是个坏主意。 Aaron Bertrand在这个问题上有很好的blog

我建议:

between