sql获取日期
⑴ 在sql中怎样截取时间
在sql中怎样截取时间?
把日期截取为月份有以下几种办法:
1、日期为日期格式,这种最简单,使用Month()函数即可获取月份,如:
1
select month(getdate()) from al
2、日期为yyyy-mm-dd格式的文本,这种情况下需要转换成日期格式再截取,如:
1
select TO_CHAR(to_date('2013-01-01', 'yyyy-MM-dd'), 'yyyyMM') dateStr from al
3、日期格式为其他格式,如yyyymmdd或yyyy/mm/dd的,此类格式类似第二种格式可以用类似的语句进行查询,只是转换成日期的时候的格式不一样。
注:以上SQL均基于ORACLE数据库
⑵ SQL获取日期的所有格式
在SQL Server里有个getdate()的函数是用来获取日期的,不过精确到秒,比如查询select getdate();
出来的结果为2009-02-26 15:57:35.357,一般用的比较多的是只获取日期,并不需要时间,这时候就需要用到convert函数了。
在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式。下表显示了所有的格式。
日期和时间的类型:
类型值 标准 输出
0 Default mon dd yyyy hh:miAM
1 USA mm/dd/yy
2 ANSI yy.mm.dd
3 British/French dd/mm/yy
4 German dd.mm.yy
5 Italian dd-mm-yy
6 - dd mon yy
7 - mon dd,yy
8 - hh:mi:ss
9 Default + milliseconds--mon dd yyyy hh:mi:ss:mmmAM(or )
10 USA mm-dd-yy
11 JAPAN yy/mm/dd
12 ISO yymmdd
13 Europe Default + milliseconds--dd mon yyyy
hh:mi:ss:mmm(24h)
14 - hh:mi:ss:mmm(24h)
类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和13返回的月份用三位字符表示(用Nov代表November).
对表中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:
SELECT CONVERT(VARCHAR(30),GETDATE(),111)
在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30
方法:
select convert(varchar(8),getdate(),112)
--------
20090226
select convert(varchar(10),getdate(),120)
-----------
2009-02-26
补充:
1、这里的varchar(10),指的是获取的字符段的个数,比如原本是2009-02-26 15:57:35.357,为了只获取2009-02-26字段,算了下,一共10个字符,所以选择varchar(10),又比如为varchar(7),则为2009-02。
2、convert(varchar(10),getdate(),120)里的120是显示日期的格式。
用 replace('2007053019:10:00',':','');替换:号
⑶ SQL语句获取日期的月份
下面以SQL Server数据库为例,可以用自带函数MONTH获取,sql语句如下:
select MONTH(时间列名) as month from 表名
步骤:
1、创建test1表,并赋值。
获取到年份为“2008”。
⑷ sql 怎么获取日期字段的年月日
select to_char(时间字段,'yyyy-mm-dd') from 表名;
这样就取出时间字段中的年月日 ,格式为 2010-08-19
⑸ SQL如何得到日期
为什么不用datatime数据类型呢,只要一列就能存放年月日时分秒,而且使用也很方便。
你如果一定要使用三列,要获得当前的日期,可以这样
YEAR(GETDATE()) --这是年
MONTH(GETDATE()) --月
DAY(GETDATE()) --日
还有另一种表示法DATEPART函数,格式DATEPART ( datepart , date )如
DATEPART(year,GETDATE())
DATEPART(month,GETDATE())
DATEPART(day,GETDATE()) --前三个等价于上面三个
DATEPART(weekday,GETDATE())
另外datepart参数还可以为
quarter
dayofyear
week
hour
minute
second
millisecond
⑹ sql获取当前日期的日
oracle中实现如下:
1、查询当前日期的天数
select sysdate as 当前时间,extract(day from sysdate) as 天数 from daul;
2、查询当前日期前7天
select to_char(sysdate-7,'yyyy-mm-dd ')||'00:00:00' start_time,to_char(sysdate-7,'yyyy-mm-dd ')||'23:59:59' end_time from al
3、查询当前日期前30天
select to_char(sysdate-30,'yyyy-mm-dd ')||'00:00:00' start_time,to_char(sysdate-30,'yyyy-mm-dd ')||'23:59:59' end_time from al
⑺ sql 获取日期的年月日
select convert(CHAR(10),GETDATE(),120)
⑻ SQL获取时间
这个表里面有一个字段是日期时间是吧,时间格式如何?标准吗?
如果是的话就比较简单,你看看下面这样写行不行(后面几个2008-10-10可以随便用一个日期):
select * from 表名 where CONVERT(datetime, 时间字段)>CONVERT(datetime, '2008-08-10')
and CONVERT(datetime, 时间字段)<CONVERT(datetime, '2008-10-10') and
CONVERT(datetime,'2008-10-10'+' '+CONVERT(varchar,CONVERT(datetime, 时间字段),108))>CONVERT(datetime,'2008-10-10 9:00:00.000')
and CONVERT(datetime,'2008-10-10'+' '+CONVERT(varchar,CONVERT(datetime, 时间字段),108))<CONVERT(datetime,'2008-10-10 12:00:00.000')
⑼ sql如何取得当前日期
getdate //获得系统当前日期
datepart //获取日期指定部分(年月日时分表)
getdate()函数:取得系统当前的日期和时间。返回值为datetime类型的。
用法:getdate()
使用时间和日期的函数
getdate():获取系统当前时间
dateadd(datepart,number,date):计算在一个时间的基础上增加一个时间后的新时间值,比如:dateadd(yy,30,getdate())
datediff(datepart,startdate,enddate):计算两个时间的差值,比如:datediff(yy,getdate(),'2008-08-08')
dataname(datepart,date):获取时间不同部分的值,返回值为字符串
datepart(datepart,date):和datename相似,只是返回值为整型
day(date):获取指定时间的天数
month(date):获取指定时间的月份
year(date):获取指定时间的年份
看以上具体参数
数据库段有一项为time字段,类型为日期/时间,我有以下SQL语句取系统当前时间插入:
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')