關於mysql時間戳儲存過程用法

2021-09-25 23:04:58 字數 1590 閱讀 4441

以今日2019-8-7為例,則需獲取昨日到今日凌晨時間戳,1565020800 - 1565107200 完整日期格式為2019-8-6 0:00:00 - 2019-8-7 0:00:00

在mysql中使用時間戳時需要使用函式unix_timestamp()

則完整的sql語句為:

select

*from 表名

where 建立時間字段

between unix_timestamp(cast(sysdate()as

date)-

interval

1day

)and

unix_timestamp(cast(sysdate()as

date

))

以今日2019-8-7為例,則需獲取時間戳範圍為 1565107200 - 1565193600,完整的時間格式為2019-8-7 0:00:00 - 2019-8-8 0:00:00

select

*from 表名

where 建立時間字段

between unix_timestamp(cast(sysdate()as

date))

and unix_timestamp(cast(sysdate()as

date)+

interval

1day

)

create

procedure getdatabytablename(

in *** int

,in tb varchar

(255))

begin

if(*** =1)

then

set@sql

= concat(

'select * from '

,tb,

' where create_time between unix_timestamp(cast(sysdate()as date) - interval 1 day)

and unix_timestamp(cast(sysdate()as date))');

endif;if

(*** =2)

then

set@sql

= concat(

'select * from '

,tb,

' where create_time between unix_timestamp(cast(sysdate()as date))

and unix_timestamp(cast(sysdate()as date) + interval 1 day)');

endif

;prepare stmtt from

@sql

;execute stmtt;

end;

引數

意義***

標識是昨天還是今天

tb表名,可以是檢視名稱

記踩坑經歷,在in 引數後未指明型別大小報錯,參考一些資料都是未宣告型別大小,掙扎了很久,終於ok了。

mysql時間戳儲存

利用時間戳來區分資料庫中的兩條不同資料時,時間衝突是乙個簡單而又麻煩的東西,不管是高併發還是低請求的系統,時間衝突的概率依然存在,只是高低的問題。一般而言,對於時間衝突概率高的系統,一般是提高時間的精度來區分兩條資料,甚至加上如隨機數 程序id 伺服器id等。使用mysql資料庫時,可以利用mysq...

mysql關於時間戳

想讓mysql每條插入的資料中自動存入時間,精確毫秒,每次修改行的時候,自動存入時間,精確毫秒 如果只顯示年月日時分秒,則把6去掉即刻 create table test1 text varchar 30 createdtime timestamp 6 not null default curren...

關於mysql儲存過程

刪除 drop procedure if exists 名稱 建立例項 create procedure add caller myuid int,fwuid int,dt datetime,out returnvalue int begin declare exresult int declare...