SQL获取时间函数convert(varchar(10),getdate(),111)

SQL获取时间函数convert(varchar(10),getdate(),111),第1张

select convert(varchar(10),getdate(),111)

结果应该是2012/10/25 后面不带 00:00:00的

你看到了00:00:00是因为你把这个值插入了一个datatime列里面,后面的是自动补上的。

DATEADD

在向指定日期加上一段时间的基础上,返回新的 datetime 值。

语法

DATEADD ( datepart , number, date )

DATEDIFF

返回跨两个指定日期的日期和时间边界数。

语法

DATEDIFF ( datepart , startdate , enddate )

DATEPART

返回代表指定日期的指定日期部分的整数。

语法

DATEPART ( datepart , date )

DATENAME

返回代表指定日期的指定日期部分的字符串。

语法

DATENAME ( datepart , date )

比较 DATEADD 和 DATEDIFF

DATEADD 函数向指定日期添加一段时间间隔。例如,如果 titles 表中所有书籍的发行日期都推迟三天,则可使用以下语句获得新的发行日期:

USE pubs

SELECT DATEADD(day, 3, pubdate)

FROM titles

如果日期参数的数据类型是 smalldatetime,则结果的数据类型也是 smalldatetime。可以使用 DATEADD 对 smalldatetime 值添加秒或毫秒,但只有当 DATEADD 返回的结果日期至少改变了 1 分钟时,这样做才有意义。

DATEDIFF 函数计算指定的两个日期中第二个日期与第一个日期之间各日期部分相差的时间量。换句话说,它得出两个日期之间的间隔。结果是等于 date2 - date1 的带符号整数值,以各日期部分为单位。

下面的查询使用日期 1995 年 11 月 30 日,并得出 pubdate 和该日期之间相差的天数。

USE pubs

SELECT DATEDIFF(day, pubdate, 'Nov 30 1995')

FROM titles

对于 titles 中 pubdate 为 1995 年 10 月 21 日的行,上述查询生成的结果为 40。(10 月 21 日和 11 月 30 日之间相差 40 天。)要计算以月为单位的间隔,请使用以下查询:

USE pubs

SELECT interval = DATEDIFF(month, pubdate, 'Nov 30 1995')

FROM titles

该查询对 pubdate 值在 10 月的行生成的值为 1,对 pubdate 值在 6 月的行生成的值为 5。

若 DATEDIFF 函数中的第一个日期晚于指定的第二个日期,则产生的结果为负数。由于 titles 中有两行使用 GETDATE 函数指派 pubdate 的值,所以这些值被设置为 pubs 数据库的创建日期,这样在前面的两个查询中这两行返回负数。

如果一个或两个日期参数是 smalldatetime 值,它们将在内部转换为 datetime 值进行计算。为了进行计算,smalldatetime 值中的秒和毫秒将自动设置为 0。

比较 DATEPART 和 DATENAME

DATEPART 和 DATENAME 函数将 datetime 值的指定部分(年、季度、天、小时等)生成为整数值或 ASCII 字符串。由于 smalldatetime 只能精确到分钟,所以在这两个函数中使用 smalldatetime 值时,返回的秒和毫秒部分总是为零。

下面的示例假定日期为 5 月 29 日:

SELECT DATEPART(month, GETDATE())

下面是结果集:

------------

5

(1 row(s) affected)

SELECT DATENAME(month, GETDATE())

下面是结果集:

------------

May

(1 row(s) affected)

具体可以参考SQL Server联机丛书(安装SQLServer时自动的帮助)

1、使用getdate获取当前日期。

2、用datename 分别获取月份和日。

3、系统标准日期格式没有月日,所以使用连接符'+',自定义格式。

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

张朝辉已经给出明确答案了。我就详细说下吧:用到的函数:datediff(week,,这里取用户中奖日期,getdate())

第一个参数可以是小时hh,分mi,秒ss,周week,月mm,年yy

等,getdate()获取当前系统时间,之后去比较

第二个参数和第三个参数之间的差值是根据第一个参数来判断是多少的

具体的你懂编程的知道的。把张朝辉的代码中条件语句中的print换成你要执行的代码就行了

SQL里常用的时间函数:

>

以上就是关于SQL获取时间函数convert(varchar(10),getdate(),111)全部的内容,包括:SQL获取时间函数convert(varchar(10),getdate(),111)、SQL Server 中时间函数、SQL中获取当前日期的函数怎么写(只要**月**日)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存