时间类型的截取不能直接left等,需要 convert成varchar等字符类型
select left(convert(varchar,add_time,120),10) from shikongdbdt_orders
select left(add_time,10) from shikongdbdt_orders
从sqlserver数据库中提取日期应该使用,并把年月日分别截取出来应该使用
数据库提供的时间函数。
1:使用year,month,day用来提取年月日
如:select year(getdate()),month(getdate()),day(getdate())
2:使用DATEPART 获取年月日
如:select DATEPART('year',getdate()),DATEPART('month',getdate()),DATEPART('day',getdate())
----------------------------------------------------------------------------
如果字段是varchar类型的话,可以先将字段转换为日期类型。
使用类型转换函数convert或者cast
如:cast('2015-07-14' as datetime)
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
结果:
GetDate() 得到当前日期。
Year() 年/Month() 月/Day() 日期
SELECT YEAR(GETDATE()) AS Y,MONTH(GETDATE()) AS M,DAY(GETDATE()) AS D
Y M D
----------- ----------- -----------
2010 4 29
SELECT CONVERT(CHAR(10),GETDATE(),120) AS CC
CC
----------
2010-04-29
日期类型属于间距尺度,可以进行加减运算,没有自然原点。
SELECT DATEDIFF(DAY,CAST('2009-01-01' AS DATETIME),CAST('2009-03-11' AS DATETIME)) AS d
d
-----------
69
SELECT DATEadd(DAY,33,CAST('2009-01-01' AS DATETIME)) AS d
d
-----------------------
2009-02-03 00:00:00000
对应函数方法等建议参见sqlserver的帮助文件,里边有详细的例子和说明。
不过这种厂家自定函数移植时候会很困难。
以上就是关于sqlserver时间类型数据的截取全部的内容,包括:sqlserver时间类型数据的截取、怎么获得dateTime的年月日并且拼接、SQL SERVER查询时间是一年中第几周的函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)