SQL日期函数

SQL日期函数,第1张

weekday (dw) 日期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday 日期部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。

这里就是判断 datepart 返回的 数 在 1-7 内

取得当前时间用 now() 就行。

在数据库中格式化时间 用DATE_FORMA T(date, format)

根据格式串format 格式化日期或日期和时间值date,返回结果串。

可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式化date值:

%S, %s 两位数字形式的秒( 00,01, , 59)

%i 两位数字形式的分( 00,01, , 59)

%H 两位数字形式的小时,24 小时(00,01, , 23)

%h, %I 两位数字形式的小时,12 小时(01,02, , 12)

%k 数字形式的小时,24 小时(0,1, , 23)

%l 数字形式的小时,12 小时(1, 2, , 12)

%T 24 小时的时间形式(h h : m m : s s)

%r 12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)

%p AM 或P M

%W 一周中每一天的名称( S u n d a y, Monday, , Saturday)

%a 一周中每一天名称的缩写( Sun, Mon, , Sat)

%d 两位数字表示月中的天数( 00, 01, , 31)

%e 数字形式表示月中的天数( 1, 2, , 31)

%D 英文后缀表示月中的天数( 1st, 2nd, 3rd, )

%w 以数字形式表示周中的天数( 0 = S u n d a y, 1=Monday, , 6=Saturday)

%j 以三位数字表示年中的天数( 001, 002, , 366)

% U 周(0, 1, 52),其中Sunday 为周中的第一天

%u 周(0, 1, 52),其中Monday 为周中的第一天

%M 月名(J a n u a r y, February, , December)

%b 缩写的月名( J a n u a r y, February, , December)

%m 两位数字表示的月份( 01, 02, , 12)

%c 数字表示的月份( 1, 2, , 12)

%Y 四位数字表示的年份

%y 两位数字表示的年份

%% 直接值“%”

select date_format(日期字段,’%Y-%m-%d’) as ‘日期’ from test

使用datename函数,获取日期的月份。

例:表table中的rq字段

SQL语句如下:

selectdate(mm,rq)fromtable

相关日期、时间的提取方法还有:

年份datename(yy,rq)

月份datename(mm,rq)

日datename(dd,rq)

小时datename(hh,rq)

分钟datename(n,rq)//不是m,也不是mm

日期/时间函数,返回当前本地日期。

CURRENT_DATE 不带任何参数。它将当前本地日期作为数据类型 DATE 返回。不允许使用参数括号。 CURRENT_DATE 返回此时区的当前本地日期;它根据本地时间变量(如夏令时)进行调整。

在逻辑模式下 CURRENT_DATE 以 $HOROLOG 格式返回当前本地日期;

例如, 64701 。

显示模式下的 CURRENT_DATE 以区域设置的默认格式返回当前本地日期。

例如,在美国的区域设置为 02/22/2018 ,在欧洲的区域设置为 22/02/2018 ,在俄罗斯的区域设置为 22022018 。

要指定不同的日期格式,请使用 TO_DATE 函数。要更改默认日期格式,请将 SET OPTION 命令与 DATE_FORMAT 、 Year_OPTION 或 DATE_SEFACTOR 选项配合使用。

要仅返回当前日期,请使用 CURRENT_DATE 或 CURDATE 。这些函数以 DATE 数据类型返回它们的值。 CURRENT_TIMESTAMP 、 GETDATE 和 NOW 函数也可用于将当前日期和时间作为 TIMESTAMP 数据类型返回。

请注意,除 GETUTCDATE 之外,所有 SQL时间和日期函数都特定于本地时区设置。要获得通用的当前时间戳(独立于时区),可以使用 GETUTCDATE 或ObjectScript $ZTIMESTAMP 特殊变量。

使用嵌入式SQL时,这些数据类型的执行方式不同。 DATE 数据类型将值存储为 $HOROLOG 格式的整数;当在SQL中显示时,它们将转换为日期显示格式;当从嵌入式SQL返回时,它们将作为整数返回。 TIMESTAMP 数据类型以相同的格式存储和显示其值。可以使用 CONVERT 函数更改日期和时间的数据类型。

CURRENT_DATE 可以用作 CREATE TABLE 或 ALTER TABLE 中的默认规范关键字。

下面的示例返回转换为显示模式的当前日期:

下面的嵌入式SQL示例返回存储的当前日期。由于此日期以 $HOROLOG 格式存储,因此将以整数形式返回:

以下示例显示如何在 WHERE 子句中使用 CURRENT_DATE 返回最近 1000 天内出生的人的记录:

if

exists

(select

from

dbosysobjects

where

id

=

object_id(N

'[dbo][p_getlinkinfo]

')

and

OBJECTPROPERTY(id,

N

'IsProcedure

')

=

1)

drop

procedure

[dbo][p_getlinkinfo]

GO

/--获取连接SQL服务器的信息

所有连接本机的: *** 作的数据库名,计算机名,用户名,网卡物理地址,IP地址,程序名

--邹建

200311(引用请保留此信息)--/

/--调用示例

--显示所有本机的连接信息

exec

p_getlinkinfo

--显示所有本机的连接信息,包含ip地址

exec

p_getlinkinfo

@includeip=1

--显示连接指定数据库的信息

exec

p_getlinkinfo

'客户资料

'

--/

create

proc

p_getlinkinfo

@dbname

sysname=null,

--要查询的数据库名,默认查询所有数据库的连接信息

@includeip

bit=0

--是否显示IP地址,因为查询IP地址比较费时,所以增加此控制

as

declare

@dbid

int

set

@dbid=db_id(@dbname)

create

table

#tb(id

int

identity(1,1),dbname

sysname,hostname

nchar(128),loginname

nchar(128),net_address

nchar(12),net_ip

nvarchar(15),prog_name

nchar(128))

insert

into

#tb(hostname,dbname,net_address,loginname,prog_name)

select

distinct

hostname,db_name(dbid),net_address,loginame,program_name

from

mastersysprocesses

where

hostname

<>

'

'

and

(@dbid

is

null

or

dbid=@dbid)

if

@includeip=0

goto

lb_show

--如果不显示IP地址,就直接显示

declare

@sql

varchar(500),@hostname

nchar(128),@id

int

create

table

#ip(hostname

nchar(128),a

varchar(200))

declare

tb

cursor

local

for

select

distinct

hostname

from

#tb

open

tb

fetch

next

from

tb

into

@hostname

while

@@fetch_status=0

begin

set

@sql=

'ping

'+@hostname+

'

-a

-n

1

-l

1

'

insert

#ip(a)

exec

masterxp_cmdshell

@sql

update

#ip

set

hostname=@hostname

where

hostname

is

null

fetch

next

from

tb

into

@hostname

end

update

#tb

set

net_ip=left(a,patindex(

'%:%

',a)-1)

from

#tb

a

inner

join

(

select

hostname,a=substring(a,patindex(

'Ping

statistics

for

%:%

',a)+20,20)

from

#ip

where

a

like

'Ping

statistics

for

%:%

')

b

on

ahostname=bhostname

lb_show:

select

id,数据库名=dbname,客户机名=hostname,用户名=loginname

,网卡物理地址=net_address,IP地址=net_ip,应用程序名称=prog_name

from

#tb

go

SQL SERVER查询时间是一年中第几周,使用函数 datepart()。

例:查询 ‘2017-1-1’是2017年的第几周,语句如下

select datepart(wk,'2017-1-1')

datepart函数说明

一、函数功能:DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

二、语法:DATEPART(datepart,date)

三、参数说明:date 参数是合法的日期表达式。datepart 参数可以是下列的值:

四、实例演示

假设我们有下面这个 "Orders" 表:

我们使用如下 SELECT 语句:

SELECT DATEPART(yyyy,OrderDate) AS OrderYear,

DATEPART(mm,OrderDate) AS OrderMonth,

DATEPART(dd,OrderDate) AS OrderDay

FROM Orders

WHERE OrderId=1

结果:

1DateAdd ( I , N , D )

将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:

yyyy Year 年

q Quarter 季

m Month 月

d Day 日

w Weekday 星期

h Hour 时

n Minute 分

s Second 秒

N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。

D :待加减的日期。

例子: DateAdd ( "m" , 1 , "31-Jan-98")

结果: 28-Feb-98

说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。

例子: DateAdd ( "d" , 20 , "30-Jan-99")

结果: 1999/2/9

说明:将一个日期 30-Jan-99 加上 20 天后的日期。

2Day( 日期的字符串或表达式 )

传回日期的「日」部份。

例子: Day(" 12/1/1999 ")

结果: 1

3DateDiff (I , D1 , D2[,FW[,FY]])

计算两个日期之间的期间。

I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:

yyyy > Year 年

q Quarter 季

m Month 月

d Day 日

w Weekday 星期

h Hour 时

n Minute 分

s Second 秒

D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。

FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:

0 使用 >API 的设定值。

1 星期天

2 星期一

3 星期二

4 星期三

5 星期四

6 星期五

7 星期六

FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:

0 使用 >API 的设定值。

1 一月一日那一周为一年的第一周

2 至少包括四天的第一周为一年的第一周

3 包括七天的第一周为一年的第一周

例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ")

结果: 97

说明:显示两个日期之间的期间为 97 天

想查询2007年2月9日的付款流水有单笔交易出现多张小票号的情况的小票号

这个要看一下你的表结构是什么样的啊?

以上就是关于SQL日期函数全部的内容,包括:SQL日期函数、My SQL取得当前时间的函数是什么格式化日期的函数是什么、如何获取数据库中日期的月份(用SQL函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9661883.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存