---------sqlserver生成时间戳
1.sqlserver 日期转时间戳,取到秒,十位
select datediff(s,'1970-01-01 00:00:00',getdate()) -- 按当前日期生成时间戳,理解为结束时间
select datediff(s,'1970-01-01 00:00:00','2024-03-16') -- 按日期生成时间戳,理解为开始时间
2.sqlserver 时间戳转日期
select dateadd(s,1528380035,'1970-01-01 00:00:00')
3.mysql日期转时间戳,取到秒,十位
select unix_timestamp(now())
4.mysql时间戳转日期
select from_unixtime(1528351506, '%y-%m-%d %h:%i:%s')
-- sqlserver 日期转时间戳,取到毫秒 13位
declare @date datetime = getdate();
declare @epoch datetime = '1970-01-01 00:00:00';
declare @milliseconds bigint;
set @milliseconds = cast(datediff(second, @epoch, @date) as bigint) * 1000
+ datepart(millisecond, @date);
select @milliseconds; -- 1710666949877
------ 自定义函数
create function dbo.fn_convertdatetimetotimestamp
(
@date datetime
)
returns bigint
as
begin
-- declare @date datetime ='2024/03/17 09:17:53.403';
declare @epoch datetime = '1970-01-01 00:00:00';
declare @milliseconds bigint;
set @milliseconds = cast(datediff(second, @epoch, @date) as bigint) * 1000 + datepart(millisecond, @date);
return @milliseconds;
end
go
select dbo.fn_convertdatetimetotimestamp(getdate())
发表评论