通过使用以下查询,我获得当前日期的第一天
SELECT DATEADD(dd,-(DAY(getdate())-1),getdate())
结果:2014-04-01 15:41:06.257
我需要在00:00:00格式更改小时,减号,秒,我想要类似
2014-04-01 00:00:00
由于
答案 0 :(得分:4)
这也将实现:
select dateadd(month, datediff(month, 0, getdate()), 0)
答案 1 :(得分:1)
您的查询返回datetime
值 - 自SQL Server时钟纪元 1900年1月1日00:00:00.000以来的毫秒数。
datetime
值只包含您提供的文本表示形式(如果您没有明确指定它,您将获得为SQL Server配置的默认值。)
您可以执行以下任何操作:
将其转换为date
值(假设SQL Server的最新版本):
select convert(date,
dateadd(day,
1-day(current_timestamp) ,
current_timestamp
)
)
您可以通过执行一些日期/时间算法来剥离时间组件:
select dateadd(day,
datediff(day,
'', -- 1 Jan 1900 00:00:00.000
current_timestamp
) - day(current_timestamp) + 1,
'', -- 1 Jan 1900 00:00:00.000
)
由于datetime
值是一对32位有符号整数,因此您可以操纵其内部表示来查看时间组件:
select convert(datetime,
substring(
convert(varbinary(8),current_timestamp),
1,
4
) + 0x00000000
)
如果你真正想要的是显示日期的文字表示,你可以简单地转换为所需的形式:
select convert(char(10),
dateadd(day,
1-day(current_timestamp) ,
current_timestamp
),
120
)