sql-server - 从星期一到星期一的日期变量,时间为 8:00
问题描述
如何为程序创建两个带有日期的变量,无论何时开始:第一个变量 - 上一个星期一的 8:00 第二个变量 - 最后一个星期一的 8:00(即变量之间的差异是一周)
我试过这个,但它显示时间 00:00
SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 0)
SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 7)
解决方案
不确定这是否能回答您的问题,但以下以欧洲格式返回日期,时间为上午 8 点。如果您需要美国格式,您可能需要更改 dateadd() 函数。
有点嵌套,但看看这是否有帮助
编辑:使其更简单并修改了您的初始代码。
set DATEFIRST 1 --Monday
select
cast(concat(convert(varchar,dateadd(dd,1 - datepart(dw,getdate()),getdate()),101),' 8:00') as datetime)
,cast(concat(convert(varchar,dateadd(dd,1 - datepart(dw,getdate()),getdate()+7),101),' 8:00') as datetime)
看看这是否有效。
推荐阅读
- google-apps-script - 使用 Google 表单从用户那里收集收据数据并保存在 Google 表格中
- java - 我的基本货币转换器程序输出错误
- html - 想要修复这个页面背景
- javascript - 列表渲染中的动态样式
- software-design - 迭代和增量软件过程模型之间的区别?
- css - 使用 css 变换和缩放在悬停时定位图像
- python - 从 C++ 解压 python 中的数据
- javascript - 如何修复 HTTP 中的“重定向过多”错误
- react-native - Google OAuth 无法在 react-native-app-auth 中使用
- c# - 如果一个类型与其他类型存在多对多或一对多关系,如何获取?