从日期时间列中提取日期 - SQL Server Compact

Extract date from datetime column - SQL Server Compact

我正在使用 SQL Server Compact 4.0 版本,虽然在 google 中找到它似乎很简单,但我尝试过的示例 none 有效.

我的专栏 signup_dateDateTime,值为 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;