時間的獲取方法

2021-05-22 00:48:07 字數 4466 閱讀 5384

sql code

declare

@dtdatetime

set@dt

=getdate

()declare

@number

intset

@number=3

--1.指定日期該年的第一天或最後一天

--a. 年的第一天

select

convert

(char(5

),@dt

,120)+

'1-1'--

b. 年的最後一天

select

convert

(char(5

),@dt

,120)+

'12-31'--

2.指定日期所在季度的第一天或最後一天

--a. 季度的第一天

select

convert

(datetime

,

convert

(char(8

),

dateadd

(month

,

datepart

(quarter,

@dt)*3

-month

(@dt)-

2,@dt),

120)+'

1')--

b. 季度的最後一天(case判斷法)

select

convert

(datetime

,

convert

(char(8

),

dateadd

(month

,

datepart

(quarter,

@dt)*3

-month

(@dt

),

@dt),

120)

+case

when

datepart

(quarter,

@dt) in(

1,4)

then'31

'else'30

'end)--

c. 季度的最後一天(直接推算法)

select

dateadd

(day,-

1,convert

(char(8

),

dateadd

(month

, 1+

datepart

(quarter,

@dt)*3

-month

(@dt

),

@dt),

120)+'

1')--

3.指定日期所在月份的第一天或最後一天

--a. 月的第一天

select

convert

(datetime

,convert

(char(8

),@dt

,120)+

'1')

--b. 月的最後一天

select

dateadd

(day,-

1,convert

(char(8

),dateadd

(month,1

,@dt

),120)+

'1')

--c. 月的最後一天(容易使用的錯誤方法)

select

dateadd

(month,1

,dateadd

(day,-

day(

@dt),

@dt))

--4.指定日期所在周的任意一天

select

dateadd

(day

,@number

-datepart

(weekday,

@dt),

@dt)

--5.指定日期所在周的任意星期幾

--a. 星期天做為一周的第1天

select

dateadd

(day

,@number-(

datepart

(weekday,

@dt)

+@@datefirst-1

)%7,

@dt)

--b. 星期一做為一周的第1天

select

dateadd

(day

,@number-(

datepart

(weekday,

@dt)

+@@datefirst-2

)%7-

1,@dt)

1.乙個月第一天的

select

dateadd

(mm,

datediff

(mm,0,

getdate

()), 0)

2.本週的星期一

select

dateadd

(wk,

datediff

(wk,0,

getdate

()), 0)

3.一年的第一天

select

dateadd

(yy,

datediff

(yy,0,

getdate

()), 0)

4.季度的第一天

select

dateadd

(qq,

datediff

(qq,0,

getdate

()), 0)

5.當天的半夜

select

dateadd

(dd,

datediff

(dd,0,

getdate

()), 0)

6.上個月的最後一天

select

dateadd

(ms,-3

,dateadd

(mm,

datediff

(mm,0,

getdate

()), 0))

7.去年的最後一天

select

dateadd

(ms,-3

,dateadd

(yy,

datediff

(yy,0,

getdate

()), 0))

8.本月的最後一天

select

dateadd

(ms,-3

,dateadd

(mm,

datediff

(m,0

,getdate

())+1,

0))9.本年的最後一天

select

dateadd

(ms,-3

,dateadd

(yy,

datediff

(yy,0,

getdate

())+1,

0))10.本月的第乙個星期一

select

dateadd

(wk,

datediff

(wk,0,

dateadd

(dd,6-

datepart

(day

,getdate

()),

getdate

())), 0)

返回當前日期和時間

通過函式getdate(),你可以獲得當前的日期和時間。函式getdate()可以用來作為datedime型字段的預設值。這對插入記錄時儲存當時的時間是有用的。要建立乙個表,其中的記錄包含有當前的日期和時間,可以新增乙個datetime型字段,指定其預設值為函式getdate()的返回值,就象這樣:

create

table

site_log (

username

varchar(40

),useractivity

varchar

(100

),entrydate

datetime

default

getdate

())轉換日期和時間

函式getdate()的返回值在顯示時只顯示到秒。實際上,sql sever內部時間可以精確到毫秒級(確切地說,可以精確到3.33毫秒)。

要得到不同格式的日期和時間,你需要使用函式convert()。例如,當下面的這個語句執行時,顯示的時間將包括毫秒:

select

convert

(varchar(30

),getdate

(),9

)

時間獲取方法

獲取當前時間的整點 import datetime today datetime.datetime.now replace minute 0,second 0,microsecond 0 strftime y m d h m s print today 獲取當前時間昨日的整點 yesterday d...

C 獲取時間的方法

方案 優點 僅使用c標準庫 缺點 只能精確到秒級 include include int main void size t strftime char strdest,size t maxsize,const char format,const struct tm timeptr 根據格式字串生成字...

Mysql 獲取時間的方法

mysql獲取系統當前時間的函式 環境 mysql server 5.1 問題 mysql獲取系統當前時間的函式 解決 now 函式以 yyyy mm dd hh mm ss 返回當前的日期時間,可以直接存到datetime欄位中。curdate 以 yyyy mm dd 的格式返回今天的日期,可以...