精华内容
下载资源
问答
  • sql日期转换为数字

    万次阅读 2012-02-07 17:38:53
    cast( convert(varchar,getdate(),112) as int)
     
    
    cast( convert(varchar,getdate(),112)   as   int) 

    展开全文
  • sql日期格式转换函数_SQL转换日期

    千次阅读 2020-07-27 05:36:01
    sql日期格式转换函数 介绍 (Introduction) A common task for newbies is to learn how to do a SQL convert date and work to convert them date to other data types or covert other data types to Date. ...

    sql日期格式转换函数

    介绍 (Introduction)

    A common task for newbies is to learn how to do a SQL convert date and work to convert them date to other data types or covert other data types to Date.

    对于新手来说,一项常见的任务是学习如何执行SQL转换日期并将其转换为其他数据类型或将其他数据类型转换为Date。

    Here in this article we will explain how to work and convert dates to different formats or vice versa.

    在本文的此处,我们将解释如何将日期转换为不同的格式,反之亦然。

    要求 (Requirements)

    1. SQL Server installed. Starting in SQL Server 2008

      已安装SQL Server。 从SQL Server 2008开始

    (Example)

    The first example will be simple, we have a varchar column with a date in a table, but we need to convert the varchar to date. We need to do a SQL convert date.

    第一个示例很简单,我们在表中有一个带有日期的varchar列,但是我们需要将varchar转换为date。 我们需要做一个SQL转换日期。

    Here it is script to create the table with data:

    这是使用数据创建表的脚本:

    CREATE TABLE [dbo].[delivers](
      [productid] [tinyint] NOT NULL,
      [date] [nvarchar](100) NULL,
     CONSTRAINT [PK_delivers] PRIMARY KEY CLUSTERED 
    (
      [productid] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    INSERT [dbo].[delivers] ([productid], [date]) VALUES (1, N'02-03-2005')
    INSERT [dbo].[delivers] ([productid], [date]) VALUES (2, N'03-05-2006')
    INSERT [dbo].[delivers] ([productid], [date]) VALUES (3, N'04-05-2011')
    

    We want to convert the column date from nvarchar(100) to a date.

    我们想要将列日期从nvarchar(100)转换为日期。

    To do it, we are going to try to modify the design of the table:

    为此,我们将尝试修改表的设计:

    SSMS Design table

    We will try to change the Data Type to smalldatetime:

    我们将尝试将数据类型更改为smalldatetime:

    change varchar to smalldatime in SSMS

    You will receive the following error message:

    您将收到以下错误信息:

    Saving changes is not permitted. The changes that you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.

    不允许保存更改。 您所做的更改要求删除并重新创建下表。 您已经对无法重新创建的表进行了更改,或者启用了“防止保存需要重新创建表的更改”选项。

    To solve this error, in SSMS go to Tools > Options menu:

    要解决此错误,请在SSMS中转到“ 工具” >“ 选项”菜单:

    Change Options in SSMS

    In Options, go to Designers >Table and Database Designers and uncheck the Prevent saving changes that require table re-creation:

    在选项中,转到设计器>表和数据库设计器,然后取消选中阻止保存需要重新创建表的更改:

    Uncheck Prevent saving changes that require table re-creation

    This option will disable to option to prevent saving table recreation. When you modify the column data type, it requires table re-creation.

    此选项将禁用为选项,以防止保存表重新创建。 修改列数据类型时,需要重新创建表。

    Now, you can save the design and your table will be converted to date and the SQL convert date is completed:

    现在,您可以保存设计,您的表将转换为日期,并且SQL转换日期已完成:

    SQL convert date: Date time results after convert sql date

    转换功能 (Conversion functions)

    T-SQL contains functions to convert data types. We will use CAST and CONVERT to do a SQL convert date.

    T-SQL包含转换数据类型的函数。 我们将使用CAST和CONVERT进行SQL转换日期。

    Let’s start with CAST first:

    让我们先从CAST开始:

    如何使用CAST将varchar,nvarchar,char,nchar转换为sql date (How to convert from varchar, nvarchar, char, nchar to sql date using CAST)

    The following example, will show how to convert characters to a datetime date type using the CAST function:

    下面的示例将说明如何使用CAST函数将字符转换为日期时间日期类型:

    declare @vardate varchar(100)='03-04-2016'
    select CAST(@vardate AS datetime) AS dataconverted;
    

    The example declares a variable named vardate and then this variable that is a varchar is converted to datetime using the CAST function.

    该示例声明一个名为vardate的变量,然后使用CAST函数将该变量varchar转换为datetime。

    Note: For more information about the CAST function, refer to this link: CAST and CONVERT (Transact-SQL)

    注意: 有关CAST函数的更多信息,请参考以下链接: CAST和CONVERT(Transact-SQL)

    SQL如何使用CONVERT将日期从varchar,nvarchar,char,nchar转换为日期 (How to do a SQL convert date from varchar, nvarchar, char, nchar to date using CONVERT)

    CONVERT is a function that can do the same than CAST in the previous scenario.

    CONVERT是一项功能,可以与以前的方案中的CAST相同。

    declare @vardate varchar(100)='03-04-2016'
    select CONVERT(datetime, @vardate) as dataconverted
    

    The T-SQL code is doing the same than cast, but it is using the CONVERT function. The advantage of CONVERT is that you can easily change the format of the date using the style argument.

    T-SQL代码的作用与强制转换相同,但是它使用的是CONVERT函数。 CONVERT的优点是您可以使用style参数轻松更改日期格式。

    For example, if you want the date in the ISO format, you can use the following T-SQL sentence:

    例如,如果您想要ISO格式的日期,则可以使用以下T-SQL语句:

    select CONVERT(nvarchar(30),getdate(), 121) as isoformat
    

    如何在T-SQL中将SQL日期转换为不同的格式 (How to convert sql date into different formats in T-SQL)

    The following example shows how to convert the date format in different formats.

    下面的示例演示如何将日期格式转换为其他格式。

    For Japananes format:

    对于Japananes格式:

    select CONVERT(nvarchar(30),getdate(), 111) as Japanformat
    

    For USA format:

    对于美国格式:

    select CONVERT(nvarchar(30),getdate(), 110) as USAformat
    

    For ANSI format:

    对于ANSI格式:

    select CONVERT(nvarchar(30),getdate(), 102) as ANSIformat
    

    For British format:

    对于英式格式:

    select CONVERT(nvarchar(30),getdate(), 103) as Britishformat
    

    For German format:

    对于德语格式:

    select CONVERT(nvarchar(30),getdate(), 104) as Germanformat
    

    For Italian format:

    对于意大利语格式:

    select CONVERT(nvarchar(30),getdate(), 105) as Italianformat
    

    For European default format:

    对于欧洲默认格式:

    select CONVERT(nvarchar(30),getdate(), 113) as EuropeDefaultformat
    

    For ODBC Canonical:

    对于ODBC Canonical:

    select CONVERT(nvarchar(30),getdate(), 120) as ODBCCanonicalformat
    

    You always have the option to use the FORMAT function to get the date in the format that you want:

    您始终可以选择使用FORMAT函数以所需的格式获取日期:

    SELECT FORMAT( getdate(), 'dd/MM/yy')
    

    FORMAT is easier to handle dates and use the format of your preference, because you do not need to know the style. However, in my experience I see a lot of code using the CAST and CONVERT functions so, it is better to know them.

    FORMAT更容易处理日期并使用您的首选项格式,因为您不需要知道样式。 但是,以我的经验,我看到很多使用CAST和CONVERT函数的代码,因此最好了解它们。

    Note: For more information about the FORMAT function, refer to this link: FORMAT (Transact-SQL)

    注意: 有关FORMAT函数的更多信息,请参考以下链接: FORMAT(Transact-SQL)

    与SQL转换日期操作有关的问题 (Problems related to SQL convert date operations)

    When you try to convert to date it is not always possible. The following example shows a common error:

    当您尝试转换为日期时,并非总是可能。 以下示例显示一个常见错误:

    declare @vardate varchar(100)='11242016'
    select CONVERT(datetime, @vardate) as dataconverted
    

    The error message is the following:

    错误消息如下:

    Msg 242, Level 16, State 3, Line 22

    消息242,第16级,州3,第22行

    The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

    从varchar数据类型到datetime数据类型的转换导致值超出范围。

    You need separators for the date like a “/”, a “.” or a “-“.

    您需要用于日期的分隔符,例如“ /”,“。” 或“-”。

    The following example, modifies the string from 11242016 to 11-24-2016 and then converts to sql date:

    以下示例将字符串从11242016修改为11-24-2016,然后转换为sql date:

    declare @vardate varchar(100)='11242016'
     
    set @vardate= SUBSTRING(@vardate, 1, 2)+'-'+ SUBSTRING(@vardate, 3, 2)+'-'+SUBSTRING(@vardate, 5, 4)
     
    select CONVERT(date, @vardate) as dataconverted
    

    We use substring to concatenate the “-” to use an acceptable date format and then we use the CONVERT function to convert the characters to sql date.

    我们使用子字符串来连接“-”以使用可接受的日期格式,然后使用CONVERT函数将字符转换为sql date。

    日期数据类型 (Date data types)

    In SQL Server, there are several types of date datatypes:

    在SQL Server中,有几种类型的日期数据类型:

    • Time returns the hours, minutes, seconds and nanoseconds (hh:mm:ss.nnnnnn)

      时间返回小时,分钟,秒和纳秒(hh:mm:ss.nnnnnn)
    • Date returns the year, months and days (yyyy-mm-dd)

      日期返回年,月和日(yyyy-mm-dd)
    • Datetime returns data with this format: YYYY-MM-DD hh:mm:ss[.nnn]

      日期时间以以下格式返回数据:YYYY-MM-DD hh:mm:ss [.nnn]
    • Smalldatetime returns date with this format: YYYY-MM-DD hh:mm:ss

      Smalldatetime以以下格式返回日期:YYYY-MM-DD hh:mm:ss
    • Datetime2 is similar to Datetime, but it has more precision (YYYY-MM-DD hh:mm:ss[.nnnnnnn])

      Datetime2与Datetime类似,但具有更高的精度(YYYY-MM-DD hh:mm:ss [.nnnnnnn])
    • Datetimeoffset it has the precision of datetime2, but it is used for time zones in UTC

      Datetimeoffset它具有datetime2的精度,但它用于UTC中的时区

    SQL将日期转换为整数 (SQL convert date to integer)

    If you use the CONVERT or CAST to convert a datetime to integer, it will return the number of days since 1900 until the date provided.

    如果使用CONVERT或CAST将日期时间转换为整数,它将返回自1900年到提供的日期为止的天数。

    For example, the following T-SQL code will show the number of days from 1900 until today:

    例如,以下T-SQL代码将显示从1900到今天的天数:

    SELECT CONVERT(INT, GETDATE())
    

    You can also convert to integer the year, months, days, etc. of a datetime value. The following code shows how to store in integer variables the day, month and year of a datetime value:

    您还可以将日期时间值的年,月,日等转换为整数。 以下代码显示如何在整数变量中存储日期时间值的日,月和年:

    declare @year int = year(getdate())
     
    declare @month int = month(getdate())
    declare @day int = day(getdate())
    select @year as year,@month as month,@day as day
    

    有关SQL Server中SQL转换日期的常见问题 (Common Questions about SQL convert date in SQL Server)

    Note: The following link contains FAQ about functions and dates in SQL Server: FAQ about Dates in SQL Server

    注意: 以下链接包含有关SQL Server中的功能和日期的 常见问题解答 有关SQL Server中的日期的常见问题解答

    结论 (Conclusions)

    In this article, we learned how to do a SQL convert date in SQL Server. We learned how to modify the data type in a table, how to use the CAST, CONVERT and FORMAT functions. We also learned about the different types of SQL data types.

    在本文中,我们学习了如何在SQL Server中执行SQL转换日期。 我们学习了如何修改表中的数据类型,如何使用CAST,CONVERT和FORMAT函数。 我们还了解了不同类型SQL数据类型。

    翻译自: https://www.sqlshack.com/sql-convert-date/

    sql日期格式转换函数

    展开全文
  • sql将毫秒数字转换为日期

    万次阅读 2014-05-14 16:30:22
    sql将毫秒数字转换为日期 例如某个字段的毫秒数:1345626941701 转换函数:select dateadd(s, 1345626941701/1000 ,'1970-1-1 08:00:00') 即用 毫秒数/1000 即可。 对于字段:col/1000再用上面的函数即可 ...

    sql将毫秒数字转换为日期

    例如某个字段的毫秒数为:1345626941701

    转换函数:select dateadd(s, 1345626941701/1000 ,'1970-1-1 08:00:00')

    即用 毫秒数/1000 即可。

    对于字段:col/1000再用上面的函数即可

    对于oracle麻烦点:

    select to_date('1970-01-01 08:00:00','yyyy-MM-dd HH24:MI:SS')+(1345626941701/86400000 - 1/86400) from dual;

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

    在开发过程中,为了方便,经常将时间日期的毫秒数以整形的格式存到数据库中,虽然方便了不同地方的处理,但也会增加些麻烦。比如,我要到数据库里直接看某个时间的值,都是一长串的数字,鬼都看不懂,想到看到该字段的值,还要写个转换程序,把毫秒数在转换成日期时间类型,或者拿个计算器来算。要查看的记录少,还能将就,如果多了,那不崩溃才怪呢。于是想到了在SQL里直接转换的方法,还好牛人多,在网上搜了一下,还真有相关的东西,原始的语句如下:

    SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') CURRENT_DATE, (SYSDATE- TO_DATE('1970-01-01','YYYY-MM-DD')) * 86400000 CURRENT_MILLI FROM DUAL;

    这只是个例子,还不能直接解决上面的问题,所有就改了一下,是以自定义函数的形式存在的,代码如下:

    CREATE OR REPLACE FUNCTION DATELONG2TEXT (PARAM IN LONG) RETURN VARCHAR2 AS
    V_TEXT VARCHAR2(64);
    BEGIN
    SELECT TO_CHAR(TO_DATE('1970-01-01', 'YYYY-MM-DD')+(PARAM/(24*60*60*1000) + 8/24 - 1/86400),'YYYY-MM-DD HH24:MI:SS') INTO V_TEXT FROM DUAL;
    RETURN V_TEXT;
    END DATELONG2TEXT;

    使用示例:

    SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'),SYSDATE,DATELONG2TEXT((SYSDATE - 8 / 24 - TO_DATE('1970-01-01', 'YYYY-MM-DD')) * 86400000) FROM DUAL;

    说明:

    1、加上 8/24 ,是因为时间格式是GMT,结果会受时区的影响,我们在东8区,所以要加上8个小时 ;

    2、减1/86400,至于为什么,我也说不清楚,只是在实际当中确实多了1秒,只好以这种方式减去了,根据时间情况确定是否进行调整。

    当然,我们也可以类似的写出将日期由字符串转换成毫秒数的函数。

    展开全文
  • hivesql日期转换

    2021-01-20 17:56:57
    hivesql: 日期转换:2020-09-08 转换20200908 select from_unixtime(unix_timestamp(date_sub(current_date,30),‘yyyy-MM-dd’),‘yyyyMMdd’)

    hivesql:
    日期转换:2020-09-08 转换为20200908
    select from_unixtime(unix_timestamp(date_sub(current_date,30),‘yyyy-MM-dd’),‘yyyyMMdd’)

    select from_unixtime(1564581347,‘yyyy-MM-dd HH:mm:ss’) ;
    OK
    2019-07-31 21:55:47
    Time taken: 0.168 seconds, Fetched: 1 row(s)
    hive> select from_unixtime( cast(1564581347793/1000 as int),‘yyyy-MM-dd HH:mm:ss’) ; --13位的需要这样处理
    2019-07-31 21:55:47

    日期前推两个月:select add_months(CURRENT_DATE,-2)

    日期前推两个月取当月第一天:select trunc(add_months(CURRENT_DATE,-2),‘MM’)

    日期前推两个月取当年第一天:select trunc(add_months(CURRENT_DATE,-2),‘YY’)

    获取当前年份的第一天:select trunc(current_date,‘YY’)

    在这里插入图片描述hivesql求时间差(分钟数)方法有两种:
    一、 (hour(lesson_end_time)-hour(lesson_start_time))60+(minute(lesson_end_time)-minute(lesson_start_time))
    二、(unix_timestamp(lesson_end_time)-unix_timestamp(lesson_start_time))/60
    注:方法一是同一天内的时间差,如果不在同一天需要加入day
    24*60

    展开全文
  • sql日期格式转换数字含义

    千次阅读 2012-11-27 16:06:26
    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般getdate()函数或数据表里的字段*/ CONVERT...
  • 数字格式转换为日期格式,首先要把需要转换的字段转换为字符串类型,然后才可以转换为日期格式 如:8位数字转换格式 to_date(cast(字段 as Varchar(100)),'yyyy-MM-dd') 14位数字转换 to_date(cast(字段 as ...
  • sql日期格式转换函数 In this article, we will explore various SQL Convert Date formats to use in writing SQL queries. 在本文中,我们将探索各种SQL转换日期格式,以用于编写SQL查询。 We need to ...
  • SQL中将日期转换为中文大写

    热门讨论 2011-07-13 16:12:41
    示例中列出了三种实现在SQL中将日期转换为中文大写的方法,两种通过函数实现,一种通过存储过程实现。
  • Java和sql日期转换

    千次阅读 2018-10-22 23:57:58
    ----- 查看api文档可以找到java.util.Date和java.sql.Date的关系 java.util.Date 和 java.sql.Date都继承自超类 java.lang....子类java.sql.Date向父类java.util.Date转换:可以直接转换,这里要初始化传入一...
  • 介绍了Sql日期时间格式转换,有需要的朋友可以参考一下
  • SQL学习笔记七函数 数字日期,类型转换,空值处理,case 使用说明
  • SQL 日期转换函数

    万次阅读 2009-04-28 13:57:00
    SqlServer日期(convert函数,getdate函数) 函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒)。 ..类型0,9,和13总是返回四位的年。对...
  • SQL日期转换CONVERT函数

    千次阅读 2012-08-01 08:29:04
    CONVERT 函数 [数据类型转换] -------------------------------------------------------------------------------- 功能  返回转换成提供的数据类型的表达式。 语法  CONVERT ( data type, expression...
  • SQL日期格式转换

    千次阅读 2008-10-24 11:19:00
    SQL日期格式转换 --字符转换为日期时,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/...
  • hive sql 日期格式转换

    千次阅读 2018-02-28 19:56:54
    遇到一个需求,需要...最终需要的日期格式:yyyyMMdd。 当日时间戳 unix_timestamp() 方法可得到当前时间的时间戳。 上月今日 使用 add_months(日期,N) 函数可将日期往前、往后推N个月。主要有两种格式: ...
  • SQL 日期 和 时间戳 相互转换

    千次阅读 2017-06-14 17:18:21
    SQL 日期 和 时间戳 相互转换
  • SqlServer 将纯数字的时间转换为DateTime 原文:SqlServer 将纯数字的时间转换为DateTime由于数据库存的是整个字符串组到一起了,C#代码是这个样子的。 public static string time(DateTime dt) ...
  • SQL日期格式转换为Int

    千次阅读 2013-09-26 16:43:24
    如将:2013-09-26 16:33:43.050 转换为:20130926 year(CreateDate)*10000 + month(CreateDate)*100 + day(CreateDate)
  • SQL日期转换、通用函数

    万次阅读 2018-10-10 18:27:25
    1、当前系统时间 SELECT SYSDATE FROM dual ; 2、修改日期显示格式 ALTER SESSION SET NLS_DATE_FORMAT=‘yyyy-mm-dd hh24:mi:ss’;...日期-日期=数字(天数) SELECT SYSDATE + 3 FROM dua...
  • Sql日期时间格式转换

    2014-06-16 10:36:34
    Sql日期时间格式转换 sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般getdate()...
  • SQL日期时间格式转换

    万次阅读 2017-12-03 21:33:01
    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般getdate()函数或数据表里的字段*/ ...
  • SQL日期时间格式转换大全

    千次阅读 2015-05-16 09:49:57
    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般getdate()函数或数据表里的字段*/ CONVERT...
  • sql 日期时间格式转换

    万次阅读 2019-08-03 15:28:26
    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般getdate()函数或数据表里的字段*/ CONVERT...
  • 数字转日期 pl/sqlFor starters, let us look at a PL/SQL program to add two numbers or integers and fetching the result into a third variable. 首先,让我们看一下一个PL / SQL程序,该程序将两个数字或整数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,010
精华内容 31,604
关键字:

sql日期转换为数字