我正在使用以下方法来获取下个月的第一天的时间:
select DATEADD(m, DATEDIFF(m, -1, getdate()), 0)
但是输出是:
2018-12-01 00:00:00.000
预期结果是:
2018-12-01 11:53:30.677
我尝试了各种方法,但无法获得所需的输出。我正在使用SQL Server 2008。
答案 0 :(得分:1)
您可以添加两个common = i.join(j.withColumnRenamed('COL_B', 'COL_A'), ['COL_A'], 'leftsemi')
diff = i.subtract(common)
diff.show()
值,一个为日期,另一个为时间:
diff
+---+-----+
| ID|COL_A|
+---+-----+
| 2| 456|
| 1| 123|
| 4| 678|
| 3| 111|
+---+-----+
我猜您想要从当前时间开始的时间值。
答案 1 :(得分:1)
从DAY(@date) - 1
减去@date
天,以得出该月的第一天,包括时间。然后添加一个月:
SELECT DATEADD(MONTH, 1, DATEADD(DAY, -DAY(GETDATE()) + 1, GETDATE()))
-- 2018-12-01 04:52:33.403
答案 2 :(得分:0)
尝试如下
select DATEADD(m, DATEDIFF(m, -1, getdate()), 0)+ convert(DATETIME,'11:53:30.677')
如果是当前时间,则如下所示
select DATEADD(m, DATEDIFF(m, -1, getdate()), 0)+ convert(datetime, convert(time,getdate()))