我搜索的范围很广,但我似乎无法找到将朱利安转换为yyyy-mm-dd
的方法。
以下是我的朱利安的格式:
Julian格式包括年份,前两位数字和一年中的日期,最后三位数字。
例如,95076
为March 17, 1995
。 95
表示年份和年份
076
表示这是一年中的第76天。
15260
我试过这个,但它不起作用:
dateadd(d,(convert(int,LAST_CHANGED_DATE) % 1000)-1, convert(date,(convert(varchar,convert(int,LAST_CHANGED_DATE) /1000 + 1900) + '/1/1'))) as GrgDate
答案 0 :(得分:6)
您可以使用datepart()
SELECT DATEPART(yy, 95076), DATEPART(dy, 95076)
+++编辑:我误解了一些东西。这是我的更正:+++++
SELECT DATEADD(day, CAST(RIGHT('95076',3) AS int) – 1, CONVERT(datetime,LEFT('95076',2) + '0101', 112))
答案 1 :(得分:1)
编辑:为Oracle和MySQL用户留下这个答案
这在T-SQL中不起作用。
使用此:
MAKEDATE(1900 + d / 1000, d % 1000)
例如:
SELECT MAKEDATE(1900 + 95076 / 1000, 95076 % 1000)
返回March, 17 1995 00:00:00
。
答案 2 :(得分:0)
我将20连接到我的JD,然后运行
My.PCL.MyPage'1[T]
答案 3 :(得分:0)
针对SQL用户
DECLARE @jdate VARCHAR(10)
SET @jdate = 117338
SELECT dateadd(dd, (@jdate - ((@jdate/1000) * 1000)) - 1, dateadd(yy, @jdate/1000, 0))
答案 4 :(得分:0)
这肯定在所有情况下都有效。
DECLARE @date int
SET @date = 21319
SELECT DATEADD(dd, RIGHT(@date,LEN(@date)-3)-1, DATEADD(yy,LEFT(@date,1)*100 +RIGHT(LEFT(@date,3),2),'1 Jan 1900'))
答案 5 :(得分:0)
您需要在第一个字符中为世纪指定1或0。例如,SET @date = 21319
的前缀应为1或0。下面是一个适用于所有y2k用例的示例。
DECLARE @jdate INT
SET @jdate = 119150
SELECT DATEADD(dd, (@jdate - ((@jdate/1000) * 1000)) - 1, DATEADD(yy, @jdate/1000, 0))
答案 6 :(得分:0)
声明@Julian varchar(7)
声明@date日期
设置@Julian = 2020277
设置@Date = Dateadd(day,+ Cast(right(@ Julian,3)作为int)-1,Cast(left(@ Julian,4)+'0101'作为Date))
选择@日期
答案 7 :(得分:0)
标准SQL很简单(您可以对2位数的年份YYMMDD做类似的操作)
声明 private val binding = LayoutHorizontalFilterBinding.inflate(LayoutInflater.from(context), this, true)
@julDate int = 2020275