如何把SQL datetime转换成varchar

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把SQL datetime转换成varchar相关的知识,希望对你有一定的参考价值。

有个字段是varchar类型如:1980-01-01 另一个表的字段是datetime类型如:1980-01-01 00.00.00,我只要提取前面的1980-01等于后面字段的1980-01,应如何操作

使用convert函数,参数格式 CONVERT(VARCHAR(10),GETDATE(),110)

第二个参数为字段名称,最后一个参数为指定转换格式


例:  SELECT CONVERT(VARCHAR(10),GETDATE(),110)

检索结果为:11-10-2015

参考技术A 使用函数convert
convert(data-type,字段变量,style)

SELECT CONVERT(varchar(30),日期字段,121)

即可将日期型字段中的数据转换为以下“1980-01-01 00:00:00.000”形式的字符串

如果只取年月日,则用 CONVERT(varchar(10),日期字段,121)即可。

回到问题上,如果两个字段,varchar类型字段名称为 fieldchar ,datetime类型字段名称为fielddate, 且在同一个数据表中table,

检索两个字段日期相同的纪录,其 sql 为:

select * from table where fieldchar=convert(char(10),fielddate,121)
参考技术B 比如:SELECT CONVERT(varchar(7),'1989-01-01 00:00')
那么返回的值就是1989-01了

你在写SQL语句的可以参照如下模型:
SELECT CONVERT(VARCHAR(7),字段名) AS 日期
FROM 表

PS:VARCHAR(7)代表长度为7,因为XXXX-XX的长度为7本回答被提问者采纳
参考技术C 你想太多了,sql语句没这功能吧。
你可以在你的程序中,取出某个varchar字段的值,然后用Convert.ToDateTime转为datetime格式的,在存入datetime字段中去
参考技术D 第二个表

select left(varchar(字段),7)=‘1980-01’

第一个表
substr(字段,1,7)=‘1980-01’

如何在SQL里边提取时间并转换成TIMESTAMP

如何在MSSQL环境里边提取时间并转换成TIMESTAMP格式,谢谢。
我要先GETDATE出来一个数据,但是他是DATETIME型的,我要直接让他成为TIMESTAMP型的,怎么做到。
那个我照着做了,但是程序说不允许DATETIME向TIMESTAMP的隐性转换,并让我使用CONVERT函数,我应该怎么做?
还有我想知道,如果我要存储操作日志为什么要用TIMESTAMP类型,用DATETIME不可以吗?还是说,书上的方法太累赘?

没看明白你的用意!! timestamp 通常用作给表行加版本戳的机制。 存储大小为 8 个字节。 timestamp 数据类型只是递增的数字,不保留日期或时间

每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。 该计数器是数据库时间戳。 这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。 一个表只能有一个 timestamp 列。 每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。使用某一行中的 timestamp 列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。 如果对行进行了更改,就会更新该时间戳值。 如果没有对行进行更改,则该时间戳值将与以前读取该行时的时间戳值一致。

你如果是要返回数据库的当前时间戳值,可以使用 @@DBTS。
@@DBTS 返回当前数据库最后使用的时间戳值。 插入或更新包含 timestamp 列的行时,将产生一个新的时间戳值。
USE AdventureWorks;
GO
SELECT @@DBTS
-------------------------------------------------

这样是吗?
SELECT
CAST(GETDATE() AS timestamp) AS UsingCast,
CONVERT(timestamp, GETDATE(), 120) AS UsingConvert;
GO
这是取当前时间并转换成 timestamp
参考技术A select CONVERT(varchar(8) , getdate(), 114 )

成了
参考技术B select cast(getdate() as timestamp)

以上是关于如何把SQL datetime转换成varchar的主要内容,如果未能解决你的问题,请参考以下文章

SQL 怎么将日期时间格式转换成日期

如何用sql语句把datetime类型字段改成float 类型字段

sql日期格式转换

如何把字符串转换成datetime类型

SQL怎么把日期格式1990-01-01转换成1990年1月1日?

sql server CONVERT 日期转换问题