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

我在SQL Server的varchar中将日期存储为'19-09-2020‘,并希望将其转换为'2020-09-19’。

在SQL Server中,你可以使用转换函数和格式化函数来将日期从一种格式转换为另一种格式。对于将日期从'19-09-2020'转换为'2020-09-19'的需求,你可以使用以下方法:

方法一:使用CONVERT函数

代码语言:txt
复制
SELECT CONVERT(varchar, CONVERT(date, '19-09-2020', 105), 23) AS ConvertedDate;

解释:

  • CONVERT(date, '19-09-2020', 105) 将字符串'19-09-2020'转换为日期类型,其中105是指定日期格式的代码。
  • CONVERT(varchar, CONVERT(date, '19-09-2020', 105), 23) 将日期类型转换为字符串类型,其中23是指定日期格式的代码。

方法二:使用FORMAT函数(仅适用于SQL Server 2012及更高版本)

代码语言:txt
复制
SELECT FORMAT(CONVERT(date, '19-09-2020', 105), 'yyyy-MM-dd') AS ConvertedDate;

解释:

  • CONVERT(date, '19-09-2020', 105) 将字符串'19-09-2020'转换为日期类型,其中105是指定日期格式的代码。
  • FORMAT(CONVERT(date, '19-09-2020', 105), 'yyyy-MM-dd') 使用FORMAT函数将日期格式化为'yyyy-MM-dd'的字符串。

无论使用哪种方法,都会将日期从'19-09-2020'转换为'2020-09-19'。请注意,这些方法中的日期格式代码(例如105、23)是特定于SQL Server的,可能在其他数据库中不适用。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库SQL Server:https://cloud.tencent.com/product/cdb_sqlserver
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云原生应用引擎TKE:https://cloud.tencent.com/product/tke
  • 腾讯云人工智能平台AI Lab:https://cloud.tencent.com/product/ai-lab
  • 腾讯云物联网平台IoT Hub:https://cloud.tencent.com/product/iothub
  • 腾讯云移动开发平台MPS:https://cloud.tencent.com/product/mps
  • 腾讯云对象存储COS:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务BCS:https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙服务:https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • sql 时间转字符串_字符串举例

    Select CONVERT(varchar(100), GETDATE(), 0): 05 20 2021 3:47PM Select CONVERT(varchar(100), GETDATE(), 1): 05/20/21 Select CONVERT(varchar(100), GETDATE(), 2): 21.05.20 Select CONVERT(varchar(100), GETDATE(), 3): 20/05/21 Select CONVERT(varchar(100), GETDATE(), 4): 20.05.21 Select CONVERT(varchar(100), GETDATE(), 5): 20-05-21 Select CONVERT(varchar(100), GETDATE(), 6): 20 05 21 Select CONVERT(varchar(100), GETDATE(), 7): 05 20, 21 Select CONVERT(varchar(100), GETDATE(), 8): 15:47:31 Select CONVERT(varchar(100), GETDATE(), 9): 05 20 2021 3:47:31:410PM Select CONVERT(varchar(100), GETDATE(), 10): 05-20-21 Select CONVERT(varchar(100), GETDATE(), 11): 21/05/20 Select CONVERT(varchar(100), GETDATE(), 12): 210520 Select CONVERT(varchar(100), GETDATE(), 13):20 05 2021 15:47:31:410 Select CONVERT(varchar(100), GETDATE(), 14): 15:47:31:410 Select CONVERT(varchar(100), GETDATE(), 20):2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21):2021-05-20 15:47:31.410 Select CONVERT(varchar(100), GETDATE(), 22): 05/20/21 3:47:31 PM Select CONVERT(varchar(100), GETDATE(), 23): 2021-05-20 Select CONVERT(varchar(100), GETDATE(), 24): 15:47:31 Select CONVERT(varchar(100), GETDATE(), 25): 2021-05-20 15:47:31.410 Select CONVERT(varchar(100), GETDATE(), 100): 05 20 2021 3:47PM Select CONVERT(varchar(100), GETDATE(), 101): 05/20/2021 Select CONVERT(varchar(100), GETDATE(), 102): 2021.05.20 Select CONVERT(varchar(100), GETDATE(), 103): 20/05/2021 Select CONVERT(varchar(100), GETDATE(), 104): 20.05.2021 Select CONVERT(varchar(100), GETDATE(), 105):20-05-2021 Select CONVERT(varchar(100), GETDATE(), 106):20 05 2021 Select CONVERT(varchar(100), GETDATE(), 107): 05 20, 2021 Select CONVERT(varchar(100), GETDATE(), 108): 15:47:31 Select CONVERT(varchar(100), GETDATE(), 109): 05 20 2021 3:47:31:410PM Select CONVERT(varchar(100), GETDATE(), 110): 05-20-2021 Select CONVERT(varchar(100), GETDATE(), 111): 2021/05/20 Select CONVERT(varchar(100), GETDATE(), 112): 20210520 Select CONVERT(varchar(100), GETDATE(),

    02

    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

    SQL语句大全大全(经典珍藏版)

    大家好,又见面了,我是你们的朋友全栈君。 SQL语句大全 –语 句 功 能 –数据操作 SELECT –从 数据库 表中检索数据行和列 INSERT –向数据库表添加新数据行 DELETE –从数据库表中删除数据行 UPDATE –更新数据库表中的数据 -数据定义 CREATE TABLE –创建一个数据库表 DROP TABLE –从数据库中删除表 ALTER TABLE –修改数据库表结构 CREATE VIEW –创建一个视图 DROP VIEW –从数据库中删除视图 CREATE INDEX –为数据库表创建一个索引 DROP INDEX –从数据库中删除索引 CREATE PROCEDURE –创建一个存储过程 DROP PROCEDURE –从数据库中删除存储过程 CREATE TRIGGER –创建一个触发器 DROP TRIGGER –从数据库中删除触发器 CREATE SCHEMA –向数据库添加一个新模式 DROP SCHEMA –从数据库中删除一个模式 CREATE DOMAIN –创建一个数据值域 ALTER DOMAIN –改变域定义 DROP DOMAIN –从数据库中删除一个域 –数据控制 GRANT –授予用户访问权限 DENY –拒绝用户访问 REVOKE –解除用户访问权限 –事务控制 COMMIT –结束当前事务 ROLLBACK –中止当前事务 SET TRANSACTION –定义当前事务数据访问特征 –程序化SQL DECLARE –为查询设定游标 EXPLAN –为查询描述数据访问计划 OPEN –检索查询结果打开一个游标 http://hi.baidu.com/ttcc2009 FETCH –检索一行查询结果 CLOSE –关闭游标 PREPARE –为动态执行准备SQL 语句 EXECUTE –动态地执行SQL 语句 DESCRIBE –描述准备好的查询 —局部变量 declare @id char(10) –set @id = ‘10010001’ select @id = ‘10010001’ —全局变量 —必须以@@开头 –IF ELSE declare @x int @y int @z int select @x = 1 @y = 2 @z=3 if @x > @y print ‘x > y’ –打印字符串’x > y’ else if @y > @z print ‘y > z’ else print ‘z > y’ –CASE use pangu update employee set e_wage = case when job_level = ‟1‟ then e_wage*1.08 when job_level = ‟2‟ then e_wage*1.07 when job_level = ‟3‟ then e_wage*1.06 else e_wage*1.05 end –WHILE CONTINUE BREAK declare @x int @y int @c int select @x = 1 @y=1 http://hi.baidu.com/ttcc2009 while @x < 3 begin print @x –打印变量x 的值 while @y < 3 begin select @c = 100*@x + @y print @c –打印变量c 的值 select @y = @y + 1 end select @x = @x + 1 select @y = 1 end –WAITFOR –例 等待1 小时2 分零3 秒后才执行SELECT 语句 waitfor delay ‟01:02:03‟ select * from employee –例 等到晚上11 点零8 分后才执行SELECT 语句 waitfor time ‟23:08:00‟ select * from employee ***SELECT*** select *(列名) from table_name(表名) where column_name operator value ex:(宿主) select * from stock_information where stockid = str(nid) stockname = ‘str_name’ stockname like ‘% find this %’ stockname like ‘[a-zA-Z]%’ ——— ([]指定值的范围) stockname like ‘[^F-M]%’ ——— (^排除指定范围) ——— 只能在使用like关键字的where子句中使用通配符) or stockpath = ‘stock_path’ or stocknumber < 1000 and stocki

    01

    警告!别再使用 TIMESTAMP 作为日期字段~

    点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 来源:JAVA日知录 在日常数据库设计中,几乎每张业务表都带有一个日期列,用于记录每条记录产生和变更的时间。比如用户表会有一个日期列记录用户注册的时间、用户最后登录的时间。又比如,电商行业中的订单表(核心业务表)会有一个订单产生的时间列,当支付时间超过订单产生的时间,这个订单可能会被系统自动取消。 日期类型虽然常见,但在表结构设计中也容易犯错,比如很多开发同学都倾向使用整型存储日期类型,同时也会忽略不同日期类型对于性能可能存在的潜在影响。

    01
    领券