我使用的是SQL Server Compact 4.0版本,虽然在谷歌中找到它似乎很简单,但我尝试过的例子都不起作用。
我的专栏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)
答案 0 :(得分:2)
SQL Server Compact没有日期类型。
如果您不想查看时间,请将日期时间值转换为字符串:
SELECT CONVERT(nvarchar(10), GETDATE(), 120)
(这已经过测试,实际上对SQL Server Compact起作用)
答案 1 :(得分:0)
在SQL Server中执行此操作的老式方法可能适用于您的目的:
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。)
答案 2 :(得分:0)
我尝试了这个和许多其他解决方案。我想要一个适用于任何LCID的通用解决方案。我的解决方案是一些复杂的代码,但它对我来说非常有用。这是一个预订系统,我需要找出谁在特定日期到达。 ArriveDate
是列,d
是我想要的日期。
SQL = "SELECT * FROM tablename WHERE dateadd(day, datediff(day, 0,
ArriveDate), 0)=' " & Format(d, "yyyy-MM-dd") & " ' "
答案 3 :(得分:0)
这将仅返回原始日期时间类型的日期值。因此,您可以使用输出进行任何比较
{{1}}
答案 4 :(得分:0)
今天才看到问题,我知道有点晚了:),但这也许会有所帮助..
select convert(date,(convert(varchar(20),'04-09-2016 09:05:00')))
答案 5 :(得分:0)
大多数答案都试图达到相同的目的,但是对代码的解释还不够
CONVERT(date, Date_Updated, 120)
此代码使用mssql进行转换。第一项“日期”是要返回的数据类型。可能是“ datetime”,“ varchar”等。 第二项“ Date_Updated”是要转换的列的名称。 最后一项'120'是要返回的日期样式。样式多种多样,输入的代码将确定输出。 '120'代表YYYY-MM-DD。 希望这会有所帮助
答案 6 :(得分:0)
选择convert(nvarchar,getdate(),1)= 09/25/19
选择convert(nvarchar,getdate(),2)= 19.09.25
选择convert(nvarchar,getdate(),3)= 25/09/19
选择convert(nvarchar,getdate(),4)= 25.09.19
选择convert(nvarchar,getdate(),5)= 25-09-19
select convert(nvarchar,getdate(),6)= 25 Sep 19
select convert(nvarchar,getdate(),7)= 9月25日,19
选择convert(nvarchar,getdate(),10)= 09-25-19
选择convert(nvarchar,getdate(),11)= 19/09/25
选择convert(nvarchar,getdate(),12)= 190925
选择convert(nvarchar,getdate(),23)= 2019-09-25
选择convert(nvarchar,getdate(),101)= 09/25/2019
选择convert(nvarchar,getdate(),102)= 2019.09.25
select convert(nvarchar,getdate(),103)= 25/09/2019
选择convert(nvarchar,getdate(),104)= 25.09.2019
选择convert(nvarchar,getdate(),105)= 25-09-2019
select convert(nvarchar,getdate(),106)= 2019年9月25日
select convert(nvarchar,getdate(),107)= 2019年9月25日
选择convert(nvarchar,getdate(),110)= 2019年9月25日
选择convert(nvarchar,getdate(),111)= 2019/09/25
选择convert(nvarchar,getdate(),112)= 20190925
选择convert(nvarchar,getdate(),8)= 13:48:36
选择convert(nvarchar,getdate(),14)= 13:49:48:713
选择convert(nvarchar,getdate(),24)= 13:49:57
选择convert(nvarchar,getdate(),108)= 13:50:07
选择convert(nvarchar,getdate(),114)= 13:50:14:490
select convert(nvarchar,getdate(),0)= 2019年9月25日1:50 PM
select convert(nvarchar,getdate(),9)= 2019年9月25日1:50:31:813PM
select convert(nvarchar,getdate(),13)= 25 Sep 2019 13:50:39:307
选择convert(nvarchar,getdate(),20)= 2019-09-25 13:50:49
选择convert(nvarchar,getdate(),21)= 2019-09-25 13:50:58.923
选择convert(nvarchar,getdate(),22)= 09/25/19 1:51:07 PM
选择convert(nvarchar,getdate(),25)= 2019-09-25 13:51:14.473
select convert(nvarchar,getdate(),100)= 2019年9月25日1:51 PM
select convert(nvarchar,getdate(),109)= 2019年9月25日1:51:32:227PM
select convert(nvarchar,getdate(),113)= 2019年9月25日13:51:38:740
选择convert(nvarchar,getdate(),120)= 2019-09-25 13:51:50
选择convert(nvarchar,getdate(),121)= 2019-09-25 13:51:57.153
选择convert(nvarchar,getdate(),126)= 2019-09-25T13:52:03.627
答案 7 :(得分:0)
使用这个,我遇到了同样的问题
SELECT CAST(data_registo as date) AS "signup_date"
答案 8 :(得分:-1)
要获取字符串值,请使用CONVERT
select convert(varchar(10), signup_date, 11)
点击此处查看各种格式:
https://msdn.microsoft.com/en-us/library/ms187928.aspx
要获得DATE,然后删除时间,请执行此操作
Select Cast (signup_date as DATE)