与时间相关的SQL语句/sql获取当前时间/sql时间比较/sql时间格式化

1. 当前系统日期、时间
select getdate() 
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,‘2004-10-15‘) --返回:2004-10-1700: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)

7. select datename(dw,‘2004-10-15‘)

select 本年第多少周=datename(week,getdate())
,今天是周几=datename(weekday,getdate())

函数 参数/功能 
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年

SQL Server DATEPART() 函数返回 SQLServer datetime 字段的一部分。

SQL Server DATEPART() 函数的语法是: 
DATEPART(portion, datetime)

其中 datetime 是 SQLServer datetime 字段和部分的名称是下列之一: Ms for Milliseconds
Yy for Year
Qq for Quarter of the Year
Mm for Month
Dy for the Day of the Year
Dd for Day of the Month
Wk for Week
Dw for the Day of the Week
Hh for Hour
Mi for Minute
Ss for Second

--1.编写函数,实现按照‘年月日,星期几,上午下午晚上‘输出时间信息(2009年3月16日星期一下午)
select datename(yy,getdate()) + ‘年‘ +
       datename(mm,getdate()) + ‘月‘ + 
       datename(dd,getdate()) + ‘日‘ +
       datename(weekday,getdate()) +
       case when datename(hh,getdate()) < 12 then ‘上午‘ else ‘下午‘end                                                                                                                           
--2.编写函数,根据输入时间。输出该天是该年的第几天
select datepart(dy,getdate())
--3.求出随机输出字符‘a-z
select char(97+abs(checksum(newid()))%26)
select char(97+rand()*26)

sql时间格式化:

select CONVERT(varchar, getdate(), 120)
2004-09-1211:06:08

select convert(varchar(10),getdate() ,120) 
----------
2009-04-09

select CONVERT(varchar(12) , getdate(), 23 )
2010-06-21

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 092004

select CONVERT(varchar(12) , getdate(), 107 )
0912, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
091220041

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )
12 0920041

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177

时间: 2024-10-12 15:21:48

与时间相关的SQL语句/sql获取当前时间/sql时间比较/sql时间格式化的相关文章

使用Hibernate 拦截执行sql语句,并输出sql语句,获取sql语句

重建包名 org.hibernate.type.descriptor.sql 重建类BasicBinder 代码如下 package org.hibernate.type.descriptor.sql; import java.sql.PreparedStatement; import java.sql.SQLException; import org.hibernate.internal.CoreLogging; import org.hibernate.type.descriptor.Jdb

在项目中,多个方法会调用相同的sql语句,怎么解决各个方法的不同sql查询,解决冲突。

公司的代码中sql语句,可能会被多个方法进行调用,但是有的方法会关联到别的表,这样的话,如果修改不当,那么同样调用该sql语句的方法,会出现报错. 最近做的公司的一个功能,就出现这样一个问题,虽然本功能完成,但是调用该sql的其他方法,出现严重错误,虽然可以不同的方法些不同的sql语句,就可以解决该方法,但是公司的代码这样,痛另外一种方法解决. 该问题出现需求背景:这个需求是在做物流系统,这次要在前台页面显示的信息中增加一个字段,而要显示这个字段,就得在关联两张新表,所以在前台页面中增加一个in

经典SQL语句大全(转)

SQL语句参考,包含Access.MySQL 以及 SQL Server 基础 创建数据库 CREATE DATABASE database-name 删除数据库 drop database dbname 备份sql server 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' 开始 备份 BACKUP DATABASE pubs TO test

SQl语句收藏

/* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysqld --skip-grant-tables -- 修改root密码 密码加密函数password() update mysql.user set password=password('root'); SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES --

LINQ to SQL语句Concat/Union/Intersect/Except--2017年2月22日

Concat/Union/Intersect/Except操作 适用场景:对两个集合的处理,例如追加.合并.取相同项.相交项等等. Concat(连接) 说明:连接不同的集合,不会自动过滤相同项:延迟. 1.简单形式: var q = ( from c in db.Customers select c.Phone ).Concat( from c in db.Customers select c.Fax ).Concat( from e in db.Employees select e.Home

让你提前认识软件开发(20):如何在C语言里面执行SQL语句?

[文章摘要] 在通信类软件中,程序经常需要与数据库打交道.为了实现诸如从数据库中获取数据.更新数据库表某字段.插入或删除某条数据等功能,就需要在C语言程序中构造一些SQL语句,并用函数来执行这些SQL语句. 本文介绍如何在C语言程序中构造并执行SQL语句,为相关软件开发工作的开展提供了参考. [关键词] SQL语句  C语言  程序  流程  开发 一.为什么要在C语言程序中执行SQL语句? 在C语言程序中执行SQL语句的原因有以下几个: (1) 程序需要获取数据库中某数据表的字段值,并对这些字

MyBatis 源码分析——动态SQL语句

有几年开发经验的程序员应该都有暗骂过原生的SQL语句吧.因为他们不能一句就搞定一个业务,往往还要通过代码来拼接相关的SQL语句.相信大家会理解SQL里面的永真(1=1),永假(1=2)的意义吧.所以mybatis动态SQL功能在笔者看来是最引吸人的.为了更好的区别XML映射文件上的SQL语句.mybatis把SQL语句分为四类.那么这个笔者已经在前面的章节里面讲过了.但是我们在开发过程中常常用到的也就俩种:静态和动态. 关于静态和动态的定义,笔者是这样子理解的--静态SQL语句显示就是里面没有相

《Entity Framework 6 Recipes》中文翻译系列 (12) -----第三章 查询之使用SQL语句 (转)

3-2使用原生SQL语句更新 问题 你想在实体框架中使用原生的SQL语句,来更新底层数据存储. 解决方案 假设你有一张如图3-2所示的Payment数据库表,使用实体框架设计器工具创建了一个如图3-2所示的模型. 图3-2 Payment表,包含一个供应商的付款信息 图3-3 包含一个Payment实体的模型 为了在底层的Payment表中执行一句和多句SQL语句,可以使用在DbContext类中的属性Database中的ExecuteSQlCommand()方法. 虽然我们能在模型中查询Pay

JDBC系列:(2)使用Statement执行sql语句

执行sql语句的接口 接口 作用 Statement接口 用于执行静态的sql语句 PreparedStatement接口 用于执行预编译sql语句 CallableStatement接口 用于执行存储过程的sql语句(call xxx) 1.执行DDL语句 package com.rk.db.b_statement; import java.sql.DriverManager; import java.sql.Connection; import java.sql.SQLException;

phalcon:跟踪sql语句

在phalcon里有一个\Phalcon\Db\Profiler 类,这个类可以用来记录sql语句并计算消耗的时间.那么如何使用它呢? 手册里其实已经提供了方法,总结如下: 1.向$di里注册profiler服务 $di->set('profiler', function(){ return new\Phalcon\Db\Profiler(); }, true); 2.注册db服务时,顺便注册下事件 $di->set('db', function() use ($di) { //新建一个事件管