从日期时间列中提取日期 - SQL Server Compact
Extract date from datetime column - SQL Server Compact
我正在使用 SQL Server Compact 4.0 版本,虽然在 google 中找到它似乎很简单,但我尝试过的示例 none 有效.
我的专栏 signup_date
是 DateTime
,值为 04-09-2016 09:05:00
。
到目前为止我尝试过但没有成功的方法:
SELECT FORMAT(signup_date, 'Y-m-d') AS signup_date;
SELECT CONVERT(signup_date, GETDATE()) AS signup_date
SELECT CAST(data_registo, date) AS signup_date
我发现我可以使用 DATEPART
函数,但这会迫使我连接值,这是正确的路径吗?如果是这样,我如何连接为 Y-m-d?
SELECT DATEPART(month, signup_date)
在 SQL 服务器中执行此操作的老式方法可能适合您的目的:
select dateadd(day, datediff(day, 0, signup_date), 0)
datediff()
获取自时间 0 以来的天数(作为整数)。dateadd()
将此数字加回去。
如果您不喜欢 0
作为日期,您可以在其位置放置任何有效日期:
select dateadd(day, datediff(day, '2000-01-01', signup_date), '2000-01-01')
编辑:
如果您只是不想看到时间,请将日期转换为字符串:
select convert(nvarchar(10), signup_date, 120)
(我推荐YYYY-MM-DD格式,其他的都是available。)
要获取字符串值,请使用 CONVERT
select convert(varchar(10), signup_date, 11)
在此处查看各种格式:
https://msdn.microsoft.com/en-us/library/ms187928.aspx
要获得日期,并去掉时间,请执行此操作
Select Cast (signup_date as DATE)
SQL Server Compact 没有日期类型。
如果您不想看到时间,请将日期时间值转换为字符串:
SELECT CONVERT(nvarchar(10), GETDATE(), 120)
(这已经过测试并且实际适用于 SQL Server Compact)
我已经尝试过这个和许多其他解决方案。我想要一个适用于任何 LCID 的通用解决方案。我的解决方案是一些复杂的代码,但它非常适合我。这是一个预订系统,我需要找出谁在特定日期到达。 ArriveDate
是列,d
是我要的DATE。
SQL = "SELECT * FROM tablename WHERE dateadd(day, datediff(day, 0,
ArriveDate), 0)=' " & Format(d, "yyyy-MM-dd") & " ' "
这将 return 只有原始日期时间类型的日期值。因此,您可以使用输出
进行任何比较
SELECT convert(datetime, CONVERT(nvarchar(10), GETDATE(), 120))
今天刚看到问题,我知道有点晚了:)但也许这会有所帮助..,
select convert(date,(convert(varchar(20),'04-09-2016 09:05:00')))
大部分的答案都是为了达到同样的目的,但是对代码的解释还不够
CONVERT(date, Date_Updated, 120)
此代码使用 mssql 进行转换。第一项 'date' 是 return 的数据类型。它可以是 'datetime'、'varchar' 等。
第二项'Date_Updated'是要转换的列名。
最后一项“120”是要 returned 的日期样式。样式多种多样,输入的代码将决定输出。 '120' 代表 YYYY-MM-DD。
希望这有帮助
select 转换(nvarchar,getdate(),1)= 09/25/19
select convert(nvarchar, getdate(), 2) = 19.09.25
select 转换(nvarchar,getdate(),3)= 25/09/19
select convert(nvarchar, getdate(), 4) = 25.09.19
select 转换(nvarchar,getdate(),5)= 25-09-19
select convert(nvarchar, getdate(), 6) = 25 Sep 19
select convert(nvarchar, getdate(), 7) = 19 年 9 月 25 日
select 转换(nvarchar,getdate(),10)= 09-25-19
select 转换(nvarchar,getdate(),11)= 19/09/25
select 转换(nvarchar, getdate(), 12) = 190925
select 转换(nvarchar, getdate(), 23) = 2019-09-25
select 转换(nvarchar,getdate(),101)= 09/25/2019
select convert(nvarchar, getdate(), 102) = 2019.09.25
select 转换(nvarchar,getdate(),103)= 25/09/2019
select 转换(nvarchar,getdate(),104)= 25.09.2019
select 转换(nvarchar,getdate(),105)= 25-09-2019
select convert(nvarchar, getdate(), 106) = 2019 年 9 月 25 日
select convert(nvarchar, getdate(), 107) = 2019 年 9 月 25 日
select 转换(nvarchar,getdate(),110)= 09-25-2019
select 转换(nvarchar, getdate(), 111) = 2019/09/25
select 转换(nvarchar, getdate(), 112) = 20190925
select 转换(nvarchar, getdate(), 8) = 13:48:36
select 转换(nvarchar, getdate(), 14) = 13:49:48:713
select 转换(nvarchar, getdate(), 24) = 13:49:57
select 转换(nvarchar, getdate(), 108) = 13:50:07
select 转换(nvarchar, getdate(), 114) = 13:50:14:490
select convert(nvarchar, getdate(), 0) = 2019 年 9 月 25 日 1:50PM
select convert(nvarchar, getdate(), 9) = 2019 年 9 月 25 日 1:50:31:813PM
select convert(nvarchar, getdate(), 13) = 2019 年 9 月 25 日 13:50:39:307
select convert(nvarchar, getdate(), 20) = 2019-09-25 13:50:49
select convert(nvarchar, getdate(), 21) = 2019-09-25 13:50:58.923
select convert(nvarchar, getdate(), 22) = 09/25/19 1:51:07 PM
select convert(nvarchar, getdate(), 25) = 2019-09-25 13:51:14.473
select convert(nvarchar, getdate(), 100) = 2019 年 9 月 25 日 1:51PM
select convert(nvarchar, getdate(), 109) = 2019 年 9 月 25 日 1:51:32:227PM
select convert(nvarchar, getdate(), 113) = 2019 年 9 月 25 日 13:51:38:740
select convert(nvarchar, getdate(), 120) = 2019-09-25 13:51:50
select convert(nvarchar, getdate(), 121) = 2019-09-25 13:51:57.153
select 转换(nvarchar, getdate(), 126) = 2019-09-25T13:52:03.627
用这个,我遇到了同样的问题
SELECT CAST(data_registo as date) AS "signup_date"
您实际上在使用 CAST 函数的轨道上只是语法中的一个小错误。在 CAST 函数中,需要有 'as' 即 CAST(data_registo as date)
SELECT CAST(data_registo as date) AS signup_date;
我正在使用 SQL Server Compact 4.0 版本,虽然在 google 中找到它似乎很简单,但我尝试过的示例 none 有效.
我的专栏 signup_date
是 DateTime
,值为 04-09-2016 09:05:00
。
到目前为止我尝试过但没有成功的方法:
SELECT FORMAT(signup_date, 'Y-m-d') AS signup_date;
SELECT CONVERT(signup_date, GETDATE()) AS signup_date
SELECT CAST(data_registo, date) AS signup_date
我发现我可以使用 DATEPART
函数,但这会迫使我连接值,这是正确的路径吗?如果是这样,我如何连接为 Y-m-d?
SELECT DATEPART(month, signup_date)
在 SQL 服务器中执行此操作的老式方法可能适合您的目的:
select dateadd(day, datediff(day, 0, signup_date), 0)
datediff()
获取自时间 0 以来的天数(作为整数)。dateadd()
将此数字加回去。
如果您不喜欢 0
作为日期,您可以在其位置放置任何有效日期:
select dateadd(day, datediff(day, '2000-01-01', signup_date), '2000-01-01')
编辑:
如果您只是不想看到时间,请将日期转换为字符串:
select convert(nvarchar(10), signup_date, 120)
(我推荐YYYY-MM-DD格式,其他的都是available。)
要获取字符串值,请使用 CONVERT
select convert(varchar(10), signup_date, 11)
在此处查看各种格式:
https://msdn.microsoft.com/en-us/library/ms187928.aspx
要获得日期,并去掉时间,请执行此操作
Select Cast (signup_date as DATE)
SQL Server Compact 没有日期类型。
如果您不想看到时间,请将日期时间值转换为字符串:
SELECT CONVERT(nvarchar(10), GETDATE(), 120)
(这已经过测试并且实际适用于 SQL Server Compact)
我已经尝试过这个和许多其他解决方案。我想要一个适用于任何 LCID 的通用解决方案。我的解决方案是一些复杂的代码,但它非常适合我。这是一个预订系统,我需要找出谁在特定日期到达。 ArriveDate
是列,d
是我要的DATE。
SQL = "SELECT * FROM tablename WHERE dateadd(day, datediff(day, 0,
ArriveDate), 0)=' " & Format(d, "yyyy-MM-dd") & " ' "
这将 return 只有原始日期时间类型的日期值。因此,您可以使用输出
进行任何比较SELECT convert(datetime, CONVERT(nvarchar(10), GETDATE(), 120))
今天刚看到问题,我知道有点晚了:)但也许这会有所帮助..,
select convert(date,(convert(varchar(20),'04-09-2016 09:05:00')))
大部分的答案都是为了达到同样的目的,但是对代码的解释还不够
CONVERT(date, Date_Updated, 120)
此代码使用 mssql 进行转换。第一项 'date' 是 return 的数据类型。它可以是 'datetime'、'varchar' 等。 第二项'Date_Updated'是要转换的列名。 最后一项“120”是要 returned 的日期样式。样式多种多样,输入的代码将决定输出。 '120' 代表 YYYY-MM-DD。 希望这有帮助
select 转换(nvarchar,getdate(),1)= 09/25/19
select convert(nvarchar, getdate(), 2) = 19.09.25
select 转换(nvarchar,getdate(),3)= 25/09/19
select convert(nvarchar, getdate(), 4) = 25.09.19
select 转换(nvarchar,getdate(),5)= 25-09-19
select convert(nvarchar, getdate(), 6) = 25 Sep 19
select convert(nvarchar, getdate(), 7) = 19 年 9 月 25 日
select 转换(nvarchar,getdate(),10)= 09-25-19
select 转换(nvarchar,getdate(),11)= 19/09/25
select 转换(nvarchar, getdate(), 12) = 190925
select 转换(nvarchar, getdate(), 23) = 2019-09-25
select 转换(nvarchar,getdate(),101)= 09/25/2019
select convert(nvarchar, getdate(), 102) = 2019.09.25
select 转换(nvarchar,getdate(),103)= 25/09/2019
select 转换(nvarchar,getdate(),104)= 25.09.2019
select 转换(nvarchar,getdate(),105)= 25-09-2019
select convert(nvarchar, getdate(), 106) = 2019 年 9 月 25 日
select convert(nvarchar, getdate(), 107) = 2019 年 9 月 25 日
select 转换(nvarchar,getdate(),110)= 09-25-2019
select 转换(nvarchar, getdate(), 111) = 2019/09/25
select 转换(nvarchar, getdate(), 112) = 20190925
select 转换(nvarchar, getdate(), 8) = 13:48:36
select 转换(nvarchar, getdate(), 14) = 13:49:48:713
select 转换(nvarchar, getdate(), 24) = 13:49:57
select 转换(nvarchar, getdate(), 108) = 13:50:07
select 转换(nvarchar, getdate(), 114) = 13:50:14:490
select convert(nvarchar, getdate(), 0) = 2019 年 9 月 25 日 1:50PM
select convert(nvarchar, getdate(), 9) = 2019 年 9 月 25 日 1:50:31:813PM
select convert(nvarchar, getdate(), 13) = 2019 年 9 月 25 日 13:50:39:307
select convert(nvarchar, getdate(), 20) = 2019-09-25 13:50:49
select convert(nvarchar, getdate(), 21) = 2019-09-25 13:50:58.923
select convert(nvarchar, getdate(), 22) = 09/25/19 1:51:07 PM
select convert(nvarchar, getdate(), 25) = 2019-09-25 13:51:14.473
select convert(nvarchar, getdate(), 100) = 2019 年 9 月 25 日 1:51PM
select convert(nvarchar, getdate(), 109) = 2019 年 9 月 25 日 1:51:32:227PM
select convert(nvarchar, getdate(), 113) = 2019 年 9 月 25 日 13:51:38:740
select convert(nvarchar, getdate(), 120) = 2019-09-25 13:51:50
select convert(nvarchar, getdate(), 121) = 2019-09-25 13:51:57.153
select 转换(nvarchar, getdate(), 126) = 2019-09-25T13:52:03.627
用这个,我遇到了同样的问题
SELECT CAST(data_registo as date) AS "signup_date"
您实际上在使用 CAST 函数的轨道上只是语法中的一个小错误。在 CAST 函数中,需要有 'as' 即 CAST(data_registo as date)
SELECT CAST(data_registo as date) AS signup_date;