首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何仅从SQL Server DateTime数据类型返回日期

SQL Server 中使用DateTime数据类型返回日期时,默认情况下它将日期和时间的组合存储为一个复杂的数据类型,包括年份、月份、日期、小时、分钟和秒。要仅返回日期,可以将返回结果格式化为简单的"dd/mm/yyyy"格式或"mm/dd/yyyy"格式,从而只提取日期部分。

以下是使用T-SQL命令行查询返回日期的方法:

代码语言:sql
复制
SELECT CONVERT(VARCHAR(20), DateColumn, 103) AS 'Date'
FROM yourTable
WHERE CONVERT(DATE, DateColumn) = CONVERT(DATE, GETDATE());

在此查询中,我们首先将DateColumn字段使用 CONVERT 函数转换为日期类型,然后将其转换为VARCHAR数据类型,长度为20位,格式为dd/mm/yyyy或mm/dd/yyyy。

我们选择WHERE子句来过滤那些已经设置为当前日期的列,并仅保留'Date'字段中包含日期值的部分。然后我们使用SELECT查询将结果格式化为日期字符串并返回。

要按任何时间查询日期,您可以使用WHERE子句的DATEPART函数按特定时间返回日期。以下是一些更具体的时间:

代码语言:sql
复制
SELECT CONVERT(varchar(20), DateColumn, 103) AS 'Date'
FROM yourTable
WHERE 
    CONVERT(date, DateColumn) = DATEPART(yyyy, GETDATE()) AND 
    CONVERT(varchar, DateColumn, 103) >= DATEPART(mm, GETDATE())-1 AND 
    CONVERT(varchar, DateColumn, 103)< DATEPART(mm, GETDATE())

这将返回月份与当前月份的第一天之前的所有日期。此外,您还可以使用各种日期函数和集合方法(如 DATEFROMPARTS 和 DATEPART 函数)来自定义日期范围和格式。总的来说,在 SQL Server 中要从DateTime数据类型中的日期中仅返回日期字段时,需要使用适当的日期格式将其从复杂类型中提取出来并返回。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

常用的数据库的字段类型及大小比较_sql字段长度

ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 bytes ` VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题 LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作 RAW 固定长度的二进制数据 最大长度2000 bytes 可存放多媒体图象声音等 LONG RAW 可变长度的二进制数据 最大长度2G 同上 BLOB 二进制数据 最大长度4G CLOB 字符数据 最大长度4G NCLOB 根据字符集而定的字符数据 最大长度4G BFILE 存放在数据库外的二进制数据 最大长度4G ROWID 数据表中记录的唯一行号 10 bytes **.*.*格式,*为0或1 NROWID 二进制数据表中记录的唯一行号 最大长度4000 bytes NUMBER(P,S) 数字类型 P为整数位,S为小数位 DECIMAL(P,S) 数字类型 P为整数位,S为小数位 INTEGER 整数类型 小的整数 FLOAT 浮点数类型 NUMBER(38),双精度 REAL 实数类型

01

mysql和sqlserver区别_一定和必须的区别

mysql支持enum,和set类型,sql server不支持 mysql不支持nchar,nvarchar,ntext类型 mysql的递增语句是AUTO_INCREMENT,而sql server是identity(1,1) sql server默认到处表创建语句的默认值表示是((0)),而在mysql里面是不允许带两括号的 mysql需要为表指定存储类型 sql server识别符是[],[type]表示他区别于关键字,但是mysql却是 `,也就是按键1左边的那个符号 sql server支持getdate()方法获取当前时间日期,但是mysql里面可以分日期类型和时间类型,获取当前日期是cur_date(),当前完整时间是 now()函数 mysql支持insert into table1 set t1 = ‘’, t2 = ‘’ ,但是sql server不支持这样写 mysql支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1) sql server不支持limit语句,是非常遗憾的,只能用top 取代limt 0,N,row_number() over()函数取代limit N,M mysql在创建表时要为每个表指定一个存储引擎类型,而sql server只支持一种存储引擎 mysql不支持默认值为当前时间的datetime类型(mssql很容易做到),在mysql里面是用timestamp类型

02
领券