若某字段是datetime或timestamp,要想用日期(yyyy-mm-dd)去筛选,用取子字符串函数先获取日期,再做判断。
例如:
select * from table where substring(updateTime,1,10) = '2009-11-24';
其中updateTime字段是datetime或timestamp类型.
substring(string,start,length)取从start位置开始的length长字的子字符串
1.获取当前系统日期、时间
getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3. datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2004-09-01','2004-09-18') --返回:17
4. datepart 返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(month, '2004-10-15') --返回 10
5. datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2004-10-15') --返回:星期五
6. day(), month(),year() --可以与datepart对照一下
select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15')
,今天是周几=datename(weekday,'2004-10-15')
函数参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称
参数 interval的设定值如下:
值缩写(Sql Server) (Access 和 ASP) 说明
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq q 季 1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999
access 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似
举例:
1.GetDate() 用于sql server :select GetDate()
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天
3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7)
DatePart('d','2005-7-25 22:56:32')返回值为 25即25号
DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天
DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年
2. 查询某个日期之间的记录数据:
select * from t_business_product where hit_count>1000 and last_date>'2005-02-01' and last_date<='2005-06-05'order by id desc
go
查询最近一个月内的点击率大于100的记录数据:
select * from t_business_product where hit_count>100 and datediff(Dd,last_date,getdate())<=30 order by id desc
go
查询最近一周内的点击率大于100的记录数据:
select * from t_business_product where hit_count>100 and datediff(Dw,last_date,getdate())<=7 order by id desc
go
查询某一年(如2006年)点击率大于300的记录数据:
select * from t_business_product where hit_count>300 and DatePart(Yy,last_date)=2006 order by id desc
go
或
select * from t_business_product where hit_count>300 and DatePart(Year,last_date)=2006 order by id desc
go
3. SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm
例如:
select getdate()
2004-09-12 11:06:08.177
整理了一下SQL Server里面可能经常会用到的日期格式转换方法:
举例如下:
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004
select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004
select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004
select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004
select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004
select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1
select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004
select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1
select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
4. CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
语法
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
参数
expression
是任何有效的 Microsoft® SQL Server™ 表达式。有关更多信息,请参见表达式。
data_type
目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。
length
nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
style
日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。
在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。
不带世纪数位 (yy) 带世纪数位 (yyyy)
标准
输入/输出**
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM
* 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。
** 当转换为 datetime 时输入;当转换为字符数据时输出。
*** 专门用于 XML。对于从 datetime 或 smalldatetime 到 character 数据的转换,输出格式如表中所示。对于从 float、money 或 smallmoney 到 character 数据的转换,输出等同于 style 2。对于从 real 到 character 数据的转换,输出等同于 style 1。
重要 默认情况下,SQL Server 根据截止年份 2049 解释两位数字的年份。即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50 被解释为 1950。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。
当从 smalldatetime 转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从 datetime 或 smalldatetime 值进行转换时,可以通过使用适当的 char 或 varchar 数据类型长度来截断不需要的日期部分。
下表显示了从 float 或 real 转换为字符数据时的 style 值。
值输出
0(默认值)最大为 6 位数。根据需要使用科学记数法。
1 始终为 8 位值。始终使用科学记数法。
2 始终为 16 位值。始终使用科学记数法。
在下表中,左列表示从 money 或 smallmoney 转换为字符数据时的 style 值。
值输出
0(默认值)小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如 4235.98。
1 小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如 3,510.92。
2 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如 4235.9819。
分享到:
相关推荐
java时间操作以及转换,sql时间操作以及转换,json案例。js,css等
SQL 时间函数格式转换 SQL 时间函数是一种非常有用的函数,它可以将日期和时间转换为不同的格式,以满足不同的应用需求。下面将详细介绍 SQL 时间函数的格式转换。 getdate()函数 getdate() 函数用于获取当前系统...
在SQL查询中对Oracle数据库进行时间段操作是一项关键技能,特别是在数据恢复和历史数据分析时。Oracle数据库提供了多种方式来处理时间范围的数据,包括SQL查询、闪回功能和快照。下面我们将详细探讨这些知识点。 ...
4. **数据查询**:对于查询操作,`DBOP`可能会有一个`Query(const char* sqlQuery, ResultSet& result)`函数,返回一个结果集对象,以便于遍历查询结果。它会利用`SQLPrepare`, `SQLExecute`, `SQLFetch`等函数处理...
4. **时间操作**: SQL Server还支持对时间进行加减操作,如`DATEADD`用于增加或减少指定的时间间隔,而`DATEDIFF`计算两个日期之间的差异。例如,`DATEADD(day, 7, GETDATE())`将当前日期往后推七天。 5. **时间...
### SQL数据库中对日期时间格式的简单操作 在SQL数据库中,处理日期和时间是非常常见的需求之一。无论是记录数据的时间戳、分析业务流程中的时间差异还是进行其他与时间相关的操作,掌握日期时间格式的基本操作都是...
### SQL技巧:常用SQL操作语句详解 #### 1. 复制表(仅复制结构) **场景描述:** 在数据库管理过程中,有时我们需要创建一个与现有表具有相同结构但不包含任何数据的新表。例如,当我们需要为测试或备份目的创建...
在SQL Server中对时间日期的操作是数据库管理与开发过程中不可或缺的一部分。这不仅涉及到对当前时间的获取、格式化,还包括了日期的计算和调整。以下将深入解析如何在SQL Server中进行时间日期的操作。 ### 一、...
Labview操作Access和SQL Server数据库实战教程:创建表格、数据读写、时间段读取及SQL指令操作等全攻略,远程安装支持,LabView操作Access和SQL Server数据库实例详解:创建表格、读写数据、按时间段读取及SQL指令...
这是我收集的关于数据库中时间格式的一些转换及设置,其中还有时间日期的相关操作,适合有需要的朋友参考
在SQL中,更新指定范围内的随机时间是一项常见的需求,特别是在数据模拟、测试或者数据分析场景中。这个任务通常涉及创建或修改数据库记录,使得某个时间字段(例如:`created_at`或`updated_at`)具有在特定时间段...
Labview操作Access和SQL Server数据库实用指南:含创建表格、数据读写、时间段读取、表名查询及SQL指令操作,远程安装支持,labview操作access和sql server数据库很实用的例子,含有创建表格,读写数据,按时间段读取...
3. 日志存储:日志信息应包括操作时间、执行的SQL语句、操作结果以及可能影响的数据行等。 4. 错误处理:当SQL操作失败时,系统应记录错误信息并提供适当的反馈。 ASP中实现上述功能的具体步骤如下: 1. 创建...
在LabVIEW中操作数据库,尤其是实现按时间段查询数据,需要借助特定的工具包。本教程主要涉及使用官方数据库工具包“Database Connectivity Toolkit”,该工具包包含29个函数,能够实现数据库连接、增删改查及数据...
### SQL时间查询语句详解 #### 查询特定日期范围的数据 在SQL中,查询特定日期范围内的数据是一项基本但极其实用的功能。例如,如果我们想找出所有在2003年6月1日至2003年8月1日之间出版的书籍,可以使用以下SQL...
对于SQL Server 2005及以后版本而言,理解和掌握日期/时间数据类型及其操作至关重要。本文旨在深入探讨SQL Server 2005中的日期/时间数据类型,并介绍其在SQL Server 2008中的新发展。 #### 二、SQL Server 2005中...
本教程将深入探讨如何在SQL Server 2008环境下使用ifix工具进行数据操作,并记录这些操作。SQL Server 2008是一款由Microsoft开发的关系型数据库管理系统,广泛应用于数据存储、管理与分析。ifix则是一个用于SCADA...
这在记录操作发生的时间或获取实时数据时非常有用。例如: ```sql SELECT GETDATE() AS '当前系统日期和时间'; ``` ### 2. DATEADD - 添加时间间隔 `DATEADD` 函数允许你在现有日期上增加或减少指定的时间间隔。...
SQL Server 2000提供了强大的数据存储和处理能力,支持多种数据类型,包括数值、字符串、日期时间等。它还具备事务处理、安全性、备份恢复、性能优化等功能。该系统支持Transact-SQL作为其查询语言,用于创建、更新...
标题“C# SQL SERVER数据库操作类”表明本内容主要介绍的是在C#环境下进行SQL SERVER数据库操作的类的设计和实现。从描述“C# 实现SQL SERVER数据库操作类,很方便的使用的”我们可以得知,本文所介绍的类是经过封装...