SQL下个月的第15个月

时间:2017-08-23 17:21:17

标签: sql sql-server tsql

获取下一年的15个月的SQL查询。

今天

SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)

寻找:2018-8-15 00:00:00

我知道如何从今天开始一年:

<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:padding="0dp"     
    android:id="@+id/my_spinner">

我知道如何到月初:

SpinnerAdapter.getView(position, convertView, parent)    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        view.setPadding(0, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());
        return view;
}

但是我在将两者结合起来时遇到了麻烦。

4 个答案:

答案 0 :(得分:5)

您可以将datefromparts用于SQL Server 2012及更高版本。

select datefromparts(year(getdate())+1,month(getdate()),15)

答案 1 :(得分:2)

使用您拥有的代码截断当月的当天,但添加12个月(一年),并添加14天。

select dateadd(day,14,dateadd(month, 12+datediff(month, 0, getdate()), 0))

答案 2 :(得分:1)

SELECT DATEADD(month, DATEDIFF(month, 0, DATEADD(year, 1, DATEDIFF(day, 0, GETDATE())), 0)

答案 3 :(得分:1)

Vamsi Prabhala's回答值得接受。

但是,你应该考虑创建一个Calendar Table,因为它大大简化了日常工作的使用。

这是一个非常简单的查询,可以产生您想要的结果:

    select * from Calendar C where C.year = datepart(year, getdate()) + 1
         and C.day_of_month = 15 and C.month = datepart(m, getdate())

Rextester Demo