SQL Server日期查询时的日期格式转换
问题提出:
经常会有这样的查询要求,输入或者日历控件产生的日期格式为 yyyy-mm-dd,而数据库中的字段是datetime类型,即yyyy-mm-dd hh:mm:ss。如果简单的使用between语句或者=语句进行查询,查询结果可能是错误或者数据不全。
假设 数据库中有 2008-2-27 日的数据,但直接使用 fielddate='2008-2-27' 或者使用 between '2008-2-27' and '2008-2-27'将不能查到该天的数据。
问题解决:
使用SQL Server提供的Convert函数进行转换,由于2008-02-27最长是10位,所以使用如下语句 convert(varchar(10),fielddate,121))进行转换,其中fielddate为数据表的字段名。这样在查询时数据库得到参数后先自动将数据库内的信息转换为yyyy-mm-dd格式的10位字符,只要与参数相同即可返回查询结果.而convert中的121是指将 datetime类型转换为char类型时获得包括世纪位数的4位年份。
Convert函数的一些说明,以下资料来源于网络
不带世纪数位 (yy)带世纪数位 (yyyy)
标准
输入/输出**-0 或 100 (*) 默认值mon dd yyyy hh:miAM(或 PM)1101美国mm/dd/yyyy2102ANSIyy.mm.dd3103英国/法国dd/mm/yy4104德国dd.mm.yy5105意大利dd-mm-yy6106-dd mon yy7107-mon dd, yy8108-hh:mm:ss-9 或 109 (*) 默认值 + 毫秒mon dd yyyy hh:mi:ss:mmmAM(或 PM)10110美国mm-dd-yy11111日本yy/mm/dd12112ISOyymmdd-13 或 113 (*) 欧洲默认值 + 毫秒dd mon yyyy hh:mm:ss:mmm(24h)14114-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(***)ISO8601yyyy-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。
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
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
分享到:
相关推荐
本文将深入探讨SQL Server中多种日期格式转换的方法。 1. `CONVERT()` 函数 `CONVERT()` 函数是最常用的日期格式转换工具。它可以将日期转换为指定的样式。例如,将日期字段`myDate`转换为'YYYY-MM-DD'格式: ```...
### Sql Server 日期格式转换详解 在日常使用Sql Server数据库的过程中,我们经常会遇到需要对日期进行格式转换的需求。本文将详细介绍几种常见的日期格式转换方法,并通过具体的示例代码来帮助大家更好地理解和...
### SqlServer 日期转换详解 在SQL Server中,日期时间数据类型的处理是非常常见的需求之一。尤其是在需要以不同的格式展示日期时,`CONVERT` 函数提供了极大的灵活性和便利性。本文将详细介绍`CONVERT`函数如何...
### SQL Server日期类型与字符串转换 SQL Server提供了多种日期和时间数据类型,包括`date`、`datetime`、`datetime2`、`smalldatetime`等,用于存储和操作日期和时间数据。但在某些场景下,如报表生成、日志记录或...
亲测正确、有效的格式转换方法,试用于常见的应用场景。适合熟悉oracle,但在用SQLServer的小伙伴。
例如,`CONVERT(varchar, GETDATE(), 101)`可以将当前时间转换为美国日期格式(MM/DD/YYYY),而`FORMAT(GETDATE(), 'yyyy-MM-dd')`则能提供更直观的年月日格式。 ### 四、日期计算 .NET中的`DateTime`类提供了...
### SqlServer 日期处理函数详解 #### 概述 SqlServer 提供了一系列强大的日期处理函数,这些函数可以帮助开发者和数据库管理员高效地操作日期和时间数据。本文档将详细介绍几个常用的日期处理函数及其应用场景,并...
通过以上四种方法,我们可以有效地在SQL Server中处理日期相关的查询问题。每种方法都有其适用场景和局限性,开发者可以根据实际需求选择最合适的方式来实现日期过滤的功能。此外,随着SQL Server版本的不断更新,还...
在Microsoft SQL Server中,日期和时间格式的处理是数据库管理和数据报告中的常见需求。通过使用内置的函数,如`CONVERT()`、`DATEADD()`、`DATEDIFF()`、`DATEPART()`等,可以灵活地对日期和时间进行各种格式化和...
在SQL Server中处理日期数据时,经常需要用到不同的日期格式来满足业务需求或提高用户体验。本文将对SQL Server中的日期格式转换进行总结,并详细解释每种格式的特点及其应用场景。 #### 一、基本日期时间格式转换...
在 SQL Server 中,可以使用 CONVERT 函数将日期转换为字符串。CONVERT 函数的语法为: CONVERT (varchar, expression, style) 其中,varchar 是目标数据类型,expression 是要转换的日期数据,style 是日期格式...
在SQL中,日期和时间数据类型的格式化是一个常见的需求,特别是在报表或用户界面展示时,我们需要将数据库存储的标准日期格式转换为更易于阅读的形式。SQL Server 提供了 `CONVERT` 函数,允许我们根据需要将日期和...
在SQL Server中处理日期和时间数据时,经常需要将日期和时间转换成不同的格式以便于展示或分析。`CONVERT` 函数是SQL Server中最常用的一种方法来实现日期和时间格式化的功能。通过这个函数,我们可以灵活地调整日期...
本文将详细介绍SQL Server中的日期时间格式转换方法,并列举出多种格式化选项。 #### 使用`CONVERT`函数进行日期时间格式转换 `CONVERT`是SQL Server中用于日期时间格式转换的主要函数之一。它支持将日期时间类型...
SQLServer 数据库语句:日期/时间格式转换语句示例。
例如,在某些SQL方言中,我们可以先将日期转换为英文全拼,然后再用自定义的映射表或函数将英文日期转换为中文大写。例如,"2023-01-01" 可能会被转换为 "TWENTY THREE THOUSAND TWO HUNDRED AND THIRTY THREE MINUS...
在SQL Server中,日期和时间的格式转换是数据库操作中常见的需求,尤其是在处理报表或者用户界面显示时。`CONVERT()` 函数是SQL Server提供的一种强大工具,用于将日期和时间数据转换为不同格式的字符串。本文将深入...
SQL Server 提供了 CONVERT 函数来将日期转换为不同的格式。CONVERT 函数的基本语法为: ```sql CONVERT(data_type, expression, style) ``` 其中,data_type 是要转换的数据类型,expression 是要转换的日期表达式...