SQL学习总结

一.时间类型的自动转换函数

CONVERT(varchar(12),getdate(),112 )

原文地址http://penpy.blog.163.com/blog/static/132546191201151011458482/

一.SQL获取时间方法:

  1. getdate() 获取当前系统日期、时间
    select 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

返回代表指定日期的指定日期部分的字符串
本年第多少周=datename(week,getdate())
    今天是周几=datename(weekday,getdate())
 select datename(dw,‘2004-10-15‘)
    SELECT datename(weekday, ‘2004-10-15‘) --返回:星期五

6. day(), month(),year() --可以与datepart对照一下


函数


功能


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的值设定如下


参数值


含义


Year|yy|yyyy


获取年份


Quarter|Qq|q


Quarter获取季节


Month|Mm|m


月份1 ~ 12


Day of year|Dy |y


一年的日数,一年中的第几日 1-366


Weekday|dw|w


一周的日数,一周中的第几日 1-7


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 即星期一    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年 
  实例

  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 server中table表的[datetime]字段值‘2007-11-07 16:41:35.033’

转化为指定的格式

convert(varchar(12),getdate(),参数值)


101


09/12/2004


102


2004.09.12


103


12/09/2004


104


12.09.2004


105


12-09-2004


106


12 09 2004


107


09 12, 2004


108


11:06:08


109


09 12 2004 1


110


09-12-2004


112


20040912


113


12 09 2004 1


114


11:06:08.177


120


2007-11-07 00:00:00

                  当前日期=convert(varchar(10),getdate(),120)
                  当前时间=convert(varchar(8),getdate(),114)

时间: 2024-10-24 14:12:08

SQL学习总结的相关文章

Oracle之PL/SQL学习笔记

自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家批评指正. PL/SQL定义:PL/SQL是由Oracle开发,专门用于Oracle的程序设计语言. PL---Procedural Language. SQL—Structure QueryLanguage.PL/SQL包括过程化语句和SQL语句     PL/SQL的单位:块. 一个块中可以嵌套

SQL 学习日志01

查看一个数据库的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' (select * from 表名 where 条件) 查看一张表的表结构: sp_help table_name(表名)  获取的信息比较全 sp_columns table_name(表名) 创建数据库: use master go create database test01(数据库名) 删除数据

SQL 学习日志02

SQL数据类型 1.字符类型 char   --定长字符数据   如 char(12)  这字段就会占用12字节的空间,无论这个字段只填写了2个字节.一般在可确定这字段长度时选用,如sex字段(因只有男和女两项可选)就可用 char(2). varvhar   --可变长字符数据  如varchar(50) 这字段最大只能填写50字节,按实际填写的字节存储.一般在不确定这字段长度时使用,如 Smail字段(因邮箱的长度不确定) 就可用varchar(50). text    --用来存储大量非统

TERADATA SQL学习随笔&lt;一&gt;

最近在TERADATA环境学习SQL.在这里记录一下学习中查过的知识点,作为备案. 目录: 关于SQL学习及所用在线数据库 表联合 (join) SQL子查询 在select时创建新字段 (as, case when) 数据分组 (group by + 聚合函数count, sum, avg等) 利用over (partition by)进行数据分组并创建新字段 样本选择 1.关于SQL学习及所用在线数据库 之前有看过一些SQL学习的书.但如果从学习效率来说,跟着书学习SQL,不如直接看生产环境

SQL学习笔记:选取第N条记录

Northwind数据库,选取价格第二高的产品. 有两种方法,一个是用Row_Number()函数: SELECT productname FROM (SELECT TOP 2 productname, Row_Number() OVER (ORDER BY unitprice desc) AS rownum FROM Products) AS tbl WHERE rownum = 2; 另一种是对子语句的的结果再进行排序: SELECT top 1 productname FROM (SELE

SQL学习_查询重复数据和连接多个表数据的方法

进行数据库测试时需要根据不同场景查询数据,以便验证发现的问题是否为脏数据引起的.记录一下最近常用的查询方法: 1. 查询表中重复数据(id不同,多个字段值相同) select P1.* from project as P1, project as P2 where P1.id<>P2.id and P1.ProjectId=P2.ProjectId and P1.ServiceTypeId=P2.ServiceTypeId and P1.Rank=P2.Rank 2.连接多个表数据 selec

SQL 学习日志03

添加表内容: insert into table_name (字段1,字段2,...) values (值1,值2,....) 查询表内容: select * from table_name select 字段1,字段2 from table_name select top 10 * from table_name select * from table_name where 字段=值 select * from table_name where 字段<>值 select * from tab

PL/SQL学习

资料1 -- Created on 2014/8/20 declare -- Local variables here i integer; begin i := 12; -- Test statements here DBMS_OUTPUT.put_line(i); end; 资料2 declare cursor s is select * from city_app.city_server; s_ s%rowtype; begin open s; fetch s into s_; DBMS_

sql学习笔记1

参考: 1.<SQL学习指南> 2.慕课网,SQL学习基础 提纲: 第二章 创建和使用数据库 2.1 创建MYSQL数据库 2.2 使用mysql命令行工具 2.3 MySQL数据类型 2.3.1 字符型数据 2.3.2 数值型数据 2.3.3 时间数据 2.4 表的创建 2.4.1 第一步:设计 2.4.2 第二步:精华 2.4.3 第三步:构建SQL方案语句 2.5 操作和修改表 2.5.1 插入数据 2.5.2 更新数据 2.5.3 删除数据 2.6 导致错误的语句 2.6.1 主键不唯

sql学习笔记2

<SQL学习指南>第9章 子查询 参考:leetcode 2 ---------------------- 9.1 啥是子查询 9.2 子查询的类型 基于结果集的类型:单行/单列,单行/多列,多行/多列 完全独立的(非关联子查询).引用包含语句中的列(关联查询) 9.3 非关联子查询 前面讲的都是非关联的,可以的单独执行而不需要引用包含语句中的任何的内容.我们遇到的大多数的子查询都是这种类型,但是更新或者 删除语句会经常遇到关联子查询. 另外一个特点,前面的子查询除了是非关联的外,返回的都是一