问题引出:
Sql Server 里 dateTime 数据类型,会精确到毫秒。如果我们 在插入一条数据的时候,使用 GetDate() 记录 这个记录插入的时间,则会插入当前时间,精确到毫秒。在查询 的时候 我们 并不需要精确到 毫秒,精确到 天 即可。
解决:
使用 Convert() 转换。 如:Select time = Convert(varchar(100),time,23)。第三个参数指定转换 格式码。
更多参考:
  1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
  2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
  3. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
  4. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
  5. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
  6. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
  7. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
  8. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
  9. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
  10. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
  11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
  12. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
  13. Select CONVERT(varchar(100), GETDATE(), 12): 060516
  14. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
  15. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
  16. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
  17. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
  18. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
  19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
  20. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
  21. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
  22. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
  23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
  24. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
  25. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
  26. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
  27. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
  28. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
  29. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
  30. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
  31. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
  32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
  33. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
  34. Select CONVERT(varchar(100), GETDATE(), 112): 20060516
  35. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
  36. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
  37. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
  38. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
  39. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827

SqlServer中得到当前日期(convert函数,getdate函数)

函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3 .33毫秒)。 ..类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和 13返回的月份用三位字符表示(用Nov代表November).
对表11.1中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:
SELECT CONVERT(VARCHAR(30),GETDATE(),111)
在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30
要得到不同格式的日期和时间,你需要使用函数CONVERT()。例如,当下面的这个语句执行时,显示的时间将包括毫秒:
SELECT CONVERT(VARCHAR(30),GETDATE(),9)
注意例子中数字9的使用。这个数字指明了在显示日期和时间时使用哪种日期和时间格式。当这个语句执行时,将显示如下的日期和时间:
简体中文OS:02     6 2007     4:33:56:530PM
英文OS:Nov 30 1997 3:29:55:170AM
convert函数中的style参数提供了datetime或smalldatetime转换到char或varchar的多种日期显示格式。 Style的数字参数决定日期被如何显示。年可以被显示成两位数(yy),也可以显示成4位数(yyyy)。例如,将style参数赋值为100,可以得 到一个4位的年号,即包括世纪值(yyyy).
下表列出了style参数的可用值及可以使用的各种日期格式。当同smalldatetime类型一起使用style参数时,那些包括秒和毫秒的格式将在其位值显示零。
类型值                   标准                                                                       输出       
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 + millisecondsR11;mon                     dd yyyy hh:mi:ss:mmmAM(or )       
10                           USA                                                                         mm-dd-yy       
11                           JAPAN                                                                     yy/mm/dd       
12                           ISO                                                                         yymmdd       
13                           Europe                                                                   Default + millisecondsR11;dd mon yyyy        hh:mi:ss:mmm(24h)       
14                           -                                                                             hh:mi:ss:mmm(24h)       
类型值前面加1,比如101 则显示 mm/dd/yyyy

---------------------------------------------------------------------------------
有时侯在数据库的某些字段因特殊考虑的关系
这些字段是用char或nchar的格式来储存日期

如果希望将这些字段中转成一致的日期格式(如yyyy/mm/dd)
例如1988/1/1转成1988/01/01的话
请试着参考以下的语法…

SELECT CONVERT(varchar(10),CONVERT(datetime,employee_birthday,111),111)
FROM employee

其它格式转换的范例如下:
--YYYY/MM/DD
Select Convert(varchar(10),Getdate(),111)
--YYYYMMDD
Select Convert(varchar(10),Getdate(),112)
--HH:MM:SS
Select Convert(varchar(8),Getdate(),108)
--HH:MM:SS:mmm
Select Convert(varchar(12),Getdate(),114)

---------------------------------------------------------------------------------
如何用sql语言只获得数据库当前日期,且格式为"yyyy-mm-dd"?
select convert(char(10),getdate(),120)

---------------------------------------------------------------------------------

--字符转换为日期时,Style的使用

--1. Style=101时,表示日期字符串为:mm/dd/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',101)
--结果:2003-11-01 00:00:00.000

--2. Style=101时,表示日期字符串为:dd/mm/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',103)
--结果:2003-01-11 00:00:00.000

DECLARE @dt datetime
SET @dt='2003-1-11'

--1. Style=101时,表示将日期转换为:mm/dd/yyyy 格式
SELECT CONVERT(varchar,@dt,101)
--结果:01/11/2003

--2. Style=103时,表示将日期转换为:dd/mm/yyyy 格式
SELECT CONVERT(varchar,@dt,103)
--结果:11/01/2003

SELECT CONVERT(varchar,'2003-1-11',101)
--结果:2003-1-11

--1.

--示例 ,在下面的示例中,第一个CONVERT转换未指定style,转换的结果受SET DATAFORMAT的影响,第二个CONVERT转换指定了style,转换结果受style的影响。
--设置输入日期顺序为 日/月/年
SET DATEFORMAT DMY

--不指定Style参数的CONVERT转换将受到SET DATEFORMAT的影响
SELECT CONVERT(datetime,'2-1-2005')
--结果: 2005-01-02 00:00:00.000

--指定Style参数的CONVERT转换不受SET DATEFORMAT的影响
SELECT CONVERT(datetime,'2-1-2005',101)
--结果: 2005-02-01 00:00:00.000
GO

--2.

--示例,在下面的代码中,同样的SET DATEFORMAT设置,输入日期的世纪部分与不输入日期的世纪部分,解释的日期结果不同。
DECLARE @dt datetime

--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY

--输入的日期中指定世纪部分
SET @dt='01-2002-03'
SELECT @dt
--结果: 2002-01-03 00:00:00.000

--输入的日期中不指定世纪部分
SET @dt='01-02-03'
SELECT @dt
--结果: 2003-01-02 00:00:00.000
GO

--3.

--示例,在下面的代码中,不包含日期分隔符的字符日期,在不同的SET DATEFORMAT设置下,其解释的结果是一样的。
DECLARE @dt datetime

--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY
SET @dt='010203'
SELECT @dt
--结果: 2001-02-03 00:00:00.000

--设置SET DATEFORMAT为:日月年
SET DATEFORMAT DMY
SET @dt='010203'
SELECT @dt
--结果: 2001-02-03 00:00:00.000

--输入的日期中包含日期分隔符
SET @dt='01-02-03'
SELECT @dt
--结果: 2003-02-01 00:00:00.000

--以下示例演示了在不同的语言环境(SET LANGUAGE)下,DATENAME与CONVERT函数的不同结果。
USE master

--设置会话的语言环境为: English
SET LANGUAGE N'English'
SELECT
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]

--设置会话的语言环境为: 简体中文
SET LANGUAGE N'简体中文'
SELECT
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]

sql server获取当前日期相关推荐

  1. sql server 获取当前日期前12个月的月份sql 语句

    sql server 获取当前日期前12个月的月份sql 语句 select convert(varchar(7),dateadd(mm,number,dateadd(month,-11,getdat ...

  2. sql server 获取当前日期所在得周一和周日

    --获取当前日期所在得周一和周日 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0),dateadd(wk,datediff(wk,0,getdate()) ...

  3. sql server 获取当前日期前三十天的日期

    select convert(varchar(10),dateadd(dd,number,dateadd(month,-1,getdate())),120) as dt from master..sp ...

  4. Sql Server获取数据库名,表信息,字段信息,主键信息等

    --Sql Server获取数据库名,表信息,字段信息,主键信息等--获取所有数据库名: SELECT name FROM master..sysdatabases WHERE name NOT IN ...

  5. sql server 获取本机的ip地址

    --sql server 获取本机的ip地址 -- 其实就是使用xp_cmdshell 来获取信息,然后对信息进行筛选. --开启xp_cmdshell exec sp_configure 'show ...

  6. MySQL sql语句获取当前日期|时间|时间戳

    文章转载于:博客园--水狼一族 文章地址:<MySQL sql语句获取当前日期|时间|时间戳> 一.基础时间函数 1.1 获得当前日期+时间(date + time)函数:now() My ...

  7. 使用SQL Server 获取插入记录后的ID(自动编号)

    使用SQL Server 获取插入记录后的ID(自动编号) jingxian 本篇文章是对使用SQL Server获取插入记录后的ID(自动编号)的方法进行了详细的分析介绍,需要的朋友参考下 最近在开 ...

  8. 使用SQL Server 获取插入记录后的自增ID(自动编号)

    http://www.jb51.net/article/39029.htm 本篇文章是对使用SQL Server获取插入记录后的ID(自动编号)的方法进行了详细的分析介绍,需要的朋友参考下 最近在开发 ...

  9. SQL server获取数据库数据

    SQL server获取数据库数据 两表对比,查询A表中缺少的字段 例如 获取数据库指定表中的列 例如 获取某个存储过程的参数 两表对比,查询A表中缺少的字段 select a.name as nam ...

最新文章

  1. python 删除list 里面的一个空集合
  2. MySQL索引类型一览 让MySQL高效运行起来
  3. python生成器应用中的一个要点
  4. [device]/proc/devices and /dev/
  5. go waitgroup.done()异常处理_Go 异常处理
  6. SQL笔记-Oracle中varchar和varchar2的区别
  7. shader 隐身_如何超越隐身障碍
  8. Map与Json的相互转化
  9. 进度条制作-GIF动画
  10. Spark versus Flink: Understanding Performance in Big Data Analytics Frameworks论文总结
  11. IT服务及相关概念界定
  12. 手机html设计规范,手机网页设计尺寸规范具体是多少?
  13. 新型单词记忆法汇总(沪江英语):
  14. Type-c边充边传数据应用OTG功能(LDR6028S)
  15. IDEA2021.2安装与配置(持续更新)
  16. 【接口文档】微信支付现金红包未开通,公众号发红包用第三方红包代发接口
  17. JAVA面向对象编程学习 (1)语法基础与类与对象
  18. 入手评测 海信65e7g pro和雷鸟65r645c 选哪个
  19. 520被女朋友三番两次拉黑后,我用 Python 写了个“舔狗”必备神器
  20. js关于时间(date)的比较

热门文章

  1. linuxoracle静默安装应答文件修改_Linux7静默安装Oracle11g教程,亲测实用有效!
  2. 十折交叉验证pythoniris_python机器学习-交叉验证(cross-vaildation)
  3. ubuntu18.04下复现 singleshotpose(yolo-6D) 源代码复现
  4. 使用HBuilder制作一个简单的HTML5动漫网页——小林家的龙女仆 HTML+CSS学生个人网页制作 学生静态HTML网页源码 dreamweaver网页作业 简单网页课程成品
  5. matlab矩阵的定义和运算
  6. 【初级C语言】表达式和基本语句(布尔型与0比较,浮点型与0比较,switch语句,提高循环语句的效率)
  7. windows网站操作系统管理【1】
  8. 一篇 CVPR 2022顶会论文是如何炼成的,顶会一作亲述
  9. Java内存区域和GC机制
  10. IC卡与ID卡的区别