Convert average(decimal) into years, months and days - vb.net

I have been doing some calculation and able to find my solution but I want to go back to convert my average(587.3) into years, months and days. I'm using (ssrs 2008) for reporting. I have my avg(Fields!XXX.Value)to calculate the average inside my text box. Sorry for my English as this is my second language

If you really have "a number of days", then you don't need to take care of leap years etc, because this number (of days) doesn't refer to a "date". You might choose 360d/y and 30d/m as it is usually done in financial calculations.

Related

Significance of 631138519 in `Strict-Transport-Security: max-age'

I see many websites sets the value of 631138519 (for example twitter) for the security header Strict-Transport-Security: max-age.
That's roughly getting converted to 7,304.84 days or 175,316.26 hours. What's the significance of the number in this context?
631138519 seconds is 20 years, if an average year is 365.2421985 days long. Where does that number of days come from? I'm not sure, but it seems to represent the tropical year to an arbitrary degree of precision.
If I had to guess, I'd say that someone picked 20 years as a really long time, then looked up the number of days in a year and happened to see that value. Then other sites just copied the first one.

Store Quarter/Year in SQL Server

I have a table which needs to store the quarter and year, and I need to know which is the best way to do this. I found this answer from 10 years ago on SO: Best way to store quarter and year in SQL Server. However, there are two suggestions given--one is storing quarter and year in separate columns and making them integers, the other being storing as a datetime and using the first day of the month for the day (i.e., 1/1/2021, 4/1/2021, etc.).
Considering this answer is 10 years old and there could be better ways now for storing this data, what is the best method?
FYI, this data will not be used for calculation purposes, but will probably be searched on.
Thanks!
I recommend always storing date related data as the datetime data type.
Storing them separately is the worst possible approach, searching becomes very difficult. Try writing the query returning all quarters between 3Q2019 and 1Q2021 when your year and quarter are separate.
Breaking it into separate parts puts the responsibility on the developer to handle the year boundary appropriately, which many do not.
DateTime data type also includes validation (Q5 2020 would throw an error) to prevent data errors.
Use the right tool for the job. DateTime data should always be stored in a DateTime datatype.

Returning a set of datetimes if they dont fit criteria in SQL

this is my very first question on Stackoverflow!
I have a database with a datetime PK, the entries are each hour of each day for a whole year, so there should be 8760 entries per year. Now my task is to check if there is indeed 24 entries for each hour of each day for the whole year.
My first idea for handling this problem would be to query each unique day, and return a match if there isent 24 matches of a specific date.
But i am quite unsure of how i should write they SQL, what kind of tools should i use, and is this a good idea to go about it?
Thank you for reading and please ask if you want me to elaborate :)

How to format an integer date (5 digits) to yyyy-mm-dd in SQL Server?

I have a database with integer fields (columns) named fSystemDate, fOpenned, fStatusDate, etc... I think they represent dates, but I don't know their format. The values in those fields are how these: 76505, 76530, 76554, 76563.
I do not have examples with the real date associated with them.
Solved. See answers.
I found that this format is part of a programming language called Clarion and his date numbering starts at the date 28-December-1800.
I can convert clarion data to sql date in two ways:
SELECT DATEADD(day, 76505, '28-12-1800')
where the result would be 2010-06-15 00:00:00.
SELECT CONVERT(DateTime,76505 - 36163)
where the result is same. The number 36163 is used to adjust a SQL. This is the number of days between 1-Jan-1900 (MSSQL datetime numbering starts) and 28-Dec-1800 (Clarion datetime numbering starts).
The result in my case is correct because I asked them (my customer) examples of data from your application and compare information.
It's rather hard to help you given just a number. It looks like your dates are some sort of serial number. But without any other data points
epoch. An epoch is the zero point of a calendrical system.
increment. How big is a tick in the serial number? 1 day? 1 hour, 1 minute? A week? A month?
source hardware/operating system. From what computer system did the value originate? Different systems represent dates differently, using different calendrical systems with different epochs.
source software system. What software created the value? Was it custom software? What language what it written in? When? What is the backing store for the data? Databases, filesystems, etc., might all have their own internal date representation.
the represented value. If 76563 is indeed a representation of a date, what date does it represent? Or at least, does it represent a recent date? a date in the past? a date in the future?
It's impossible to answer your question. This page might help you:
http://www.itworld.com/article/2823335/data-center/128452-Just-dating-The-stories-behind-12-computer-system-reference-dates.html
It lists some common epochs for different computer systems:
Edited to note: here's one data point for you: Adding 76,563 days to 1 Jan 1800 yields the date 16 August 2009.

Trying to get all records that have a timestamp in between two given dates

I have this huge database of records that have been created over the past 5 or so years. I'm thinking it would be cool (and edifying) to try to create some time categories/segments for these records, the unit could be week or month or something like that, something to use for a graph.
Anyway, I need to develop a query that, given a datetime attr for each record in the table, would return all the records with a datetime falling in between X and Y (June 1, 2011 & June 7, 2011, for example).
I'm not good at using the time helpers yet and could not find any sufficiently similar questions on SO or elsewhere.
Solutions that use subjective increments like "week" or "month" that rails can understand would be strongly appreciated. I know how tricky the calendar can get in programming. Or I could just use some lowest common denominator (day) and do an extremely fine graph.
Client.where(:created_at => X..Y)
Source: Ruby on Rails Guides